判断一个数是否是素数(Java版)

这篇具有很好参考价值的文章主要介绍了判断一个数是否是素数(Java版)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

素数的定义

求解素数

素数判定法1:

遍历从2到n-1的所有数字,判断是否有可以被n整除的数,如果没有,则为素数。

优化法2:

判定的范围改为[2 -,n/2]。当 i>n/2 时,则判定为素数。

优化法3:

在Java中判定素数的范围也可以到sqrt(n),(对n开平方)。对应的函数为:Math.sqrt(n)


素数的定义

素数又称质数,一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做素数,否则称为合数(规定1既不是素数也不是合数)。

求解素数

素数判定法1:

遍历从2到n-1的所有数字,判断是否有可以被n整除的数,如果没有,则为素数。

import java.util.Scanner;
public class HomeWork {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要判断的数字:");
        int n = sc.nextInt();
        int i = 0;

        for ( i = 2; i <= n-1 ; i++) {
            if(n % i == 0){
                System.out.println(n+"不是素数");
                break;
            }
        }
        if(i == n){
            System.out.println(n+"是素数");
        }
    }
}

法1中的循环条件比较浪费时间,下面进行对代码的优化。

优化法2:

判定的范围改为[2 -,n/2]。当 i>n/2 时,则判定为素数。

import java.util.Scanner;
public class HomeWork {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要判断的数字:");
        int n = sc.nextInt();
        int i = 0;

        for ( i = 2; i <= n/2 ; i++) {
            if(n % i == 0){
                System.out.println(n+"不是素数");
                break;
            }
        }
        if(i > n/2){
            System.out.println(n+"是素数");
        }
    }
}

优化法3:

在Java中判定素数的范围也可以到sqrt(n),(对n开平方)。对应的函数为:Math.sqrt(n)

import java.util.Scanner;

public class HomeWork {

    public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入要判断的数字:");
            int n = sc.nextInt();
            int i = 2;
            for(;i <= Math.sqrt(100);i++){
                if(n % i == 0){
                    System.out.println(n+"不是素数");
                    break;
                }
            }
            if(i >Math.sqrt(n)){
                System.out.println(n+"是素数");
            }
    }
}

注意:判断是素数的条件是在for循环的外面,不能把它放到循环里。文章来源地址https://www.toymoban.com/news/detail-604976.html

到了这里,关于判断一个数是否是素数(Java版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 超级详细用C语言判断一个数是否是素数

    先上代码: #include stdio.h int main() {         int n,i;     printf(\\\"请输入一个数: \\\");     scanf(\\\"%d\\\",n);     for(i=2;in;i++){         if(n%i==0){             break;         }     }     if(n==i){         printf(\\\"是素数\\\");     }     else         printf(\\\"不是素数\\\"); } 理解: 素数

    2024年02月08日
    浏览(92)
  • C语言:判断一个数是否为素数(3种方法,含注释)

    首先要先明白素数的定义:除了1和本身之外,没有其他的因数的数,即不能被其他数整除。 同时要注意,1不是素数。 以下为判断素数的3个代码: 1.要注意给m赋初值是不能为1,因为1是任何数的因数,可以被任何数整除。若初值为1,则第一步就结束循环,所有的数输出结果

    2024年02月13日
    浏览(50)
  • C语言判断一个数是否为素数的三种方法(详细)

             今天我们来使用C语言来实现判断一个数是否为素数,首先我们需要了解到素数的概念,素数就是只能被1和它本身整除的数。             这是第一种代码,我们来分析一下,首先创建变量i和n,这里我们i用于循环,n用来存放我们输入的数字。之后我们设置一个

    2024年04月25日
    浏览(66)
  • Java 判断一个数是否是回文数(parlindrome)

    回文数 :从左往右读和从右往左读完全相同的数,如121、12321是回文数,12345不是。 思路 :分别获取到原数字的每一位,反过来组成一个新的数,和原数字比较,若相同则是回文数。 代码 : 关键 : %10获取最后一位,之后将数字/10来去掉这一位,如123%10,得到最后一位3,之

    2024年04月12日
    浏览(54)
  • java判断字符串是否包含英文,以及英文个数

    在Java中,可以使用正则表达式或字符遍历的方式来判断字符串是否包含英文字符,并统计英文字符的个数。 使用正则表达式判断字符串是否包含英文字符: 这里的正则表达式 “.[a-zA-Z]+.” 表示匹配包含至少一个英文字符的字符串。containsEnglish 的值为 true 表示字符串包含英

    2024年02月13日
    浏览(88)
  • C++判断一个数是否为回文数的算法

    C++判断一个数是否为回文数的算法 回文数是指正序(从左向右)和倒序(从右向左)读都相同的整数。在C++中,我们可以使用算法来判断一个数是否为回文数。下面是一个详细的解释和相应的源代码。 算法思路: 将给定的整数转换成字符串。 使用双指针法来检查字符串的左

    2024年02月06日
    浏览(53)
  • Java中判断对象是否为空的方法详解

    在Java编程中,经常会遇到判断对象是否为空的情况。空指针异常是常见的程序错误之一,因此在编码过程中,判断对象是否为空是一个重要的防御措施。本篇博客将深入探讨Java中判断对象是否为空的不同方法,包括使用条件判断、使用Java 8的Optional类、使用Apache Commons Lang库

    2024年02月13日
    浏览(77)
  • 【华为机试真题详解JAVA实现】—判断两个IP是否属于同一子网

        目录 一、题目描述 二、解题代码 IP地址是由4个0-255之间的整数构成的,用\\\".\\\"符号相连。 二进制的IP地址格式有32位,例如:10000011,01101011,00000011,00011000;每八位用十进制表示就是131.107.3.24 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。 子网

    2023年04月09日
    浏览(75)
  • Java的快速判断单个素数的模板

    2024年02月10日
    浏览(84)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包