文章目录

  • 一、素数是什么?
  • 二、思考步骤
  • 1.满足定义:拿一个数看能不能被1和它本身整除,对吗??
  • 2.先说说1-100以内的素数如何输出:
  • **那么怎么变成判断输入的一个数是不是素数呢??**
  • 总结



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


一、素数是什么?

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

二、思考步骤

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

JAVA 判断这个数是否为素数 java判断是否为素数的条件_java

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

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

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

首先我们需要一个循环,遍历一下1-100的全部整数,可以用for()循环

要明白的是最小的质数是:2 肯定有很多人不知道吧

JAVA 判断这个数是否为素数 java判断是否为素数的条件_System_02


那么这个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 + "是素数");
            }
        }
    }
}

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

JAVA 判断这个数是否为素数 java判断是否为素数的条件_System_03


那既然是输入的肯定要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+"是素数");

            }
    }
}

总结

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

JAVA 判断这个数是否为素数 java判断是否为素数的条件_JAVA 判断这个数是否为素数_04