Java程序中如何判断一个数是否为素数


在判断一个数是否为素数的题上,花费了我大量的时间,所以我不得不拿来说一说


一、素数是什么?

素数就是在所有比1大的整数中,除了1和它本身以外,不再有别的因数,这种整数叫做素数(质数)

二、思考步骤

1.满足定义:拿一个数看能不能被1和它本身整除,对吗??

在这里插入图片描述

                         那肯定是不对的,那不是随便一个数都是素数了

应该考虑从2开始到输入的数减一为止,都不能被你输入的数整除,才定义为素数**

2.先说说1-100以内的素数如何输出:

首先我们需要一个循环,遍历一下1-100的全部整数,可以用for()循环
要明白的是最小的质数是:2 肯定有很多人不知道吧在这里插入图片描述
那么这个for从i=2开始
在考虑内层循环,必须让外层循环的每一个数进入内层循环去除2到它自身-1的所有数看结果为不为零来判断,话不多说上码

public class HomeWork {
 public static void main(String[] args) {
        int j;
        for (int i = 2; i <= 100; i++) { //遍历1-100的整数
            for (j = 2; j <= i - 1; j++) {  //j:被i去除
                if (i % j == 0) {     //如果能被2-到i-1中的任何一个数整除就说明不是素数
                    break;      //不用break 每一个都会输出是素数
                }
            }
            if (i == j) {
                System.out.println(i + "是素数");
            }
        }
    }
}

那么怎么变成判断输入的一个数是不是素数呢??

在这里插入图片描述
那既然是输入的肯定要new 一个Scanner,然后我们不需要外面那个遍历1-100的循环了,把它去掉,里面的只需要让i小于你输入的数-1,在循环就可以啦

public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int i;
        for (i = 2; i < n; i++) {
            if (n % i == 0) {
                System.out.println(n + "不是素数");
                break;
            }
        }
            if (n==i){
                System.out.println(n+"是素数");

            }
    }
}

总结

对于写每一个编程题来说,最重要的是先要自己理解题目,逻辑清楚,就像这个素数,自己要知道素数是怎么定义的,根据定义来写代码,层层递进,当然这个方法不是最优方案,最优方案下次再说给你们吧!
在这里插入图片描述

  • 16
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值