Java题目记录:在1~100中寻找素数(质数)

Java题目记录:在1~100中寻找素数(质数)

题目1:编写for循环,找出1~100中所有素数

题目2:编写for循环,找出1~10000中所有素数,并要求每8个换一行输出

寻找素数解题:

①首先素数概念:除1和它本身外没有其他因子可以整除的数,且1不是质数。

②思路:既然1不是质数,那么直接从2开始

​ 遍历一遍2~100;在遍历的过程中,寻找到第一个数,它求余为0【这个就是它的因数】;

​ 所有整数求余1结果都为0,反之思路第一点直接从2开始,这里第一个数求余为0一定不是“1”;

​ 所以在寻找到第一个数,它求余这个数为0,且第一个数为它本身,这个就是质数。

③拓展:如果需要每8个换一行,可以设置一个变量记录打印的次数;

​ 每到8次加一个换行符并清空打印次数。

题目1代码:

public class ForTest{
    public static void main(String[] args){
        //编写for循环,找出1~100中所有素数(质数)【除1和它本身外,不能被其他整数整除】
        //思路:1不是质数,所以直接从2开始
        //for循环变量i:2~100;嵌套一个for循环变量j:2~i做因子
        //找到第一个i的因子【i % j ==0】,跳出嵌套的for循环。
        //由于从2开始第一个因子如果是本身,则就是素数
        int j;
        for(int i=2;i<=100;i++){
            for(j =2;j<=i;j++){
                if(i%j == 0){
                    break;
                }
            }
            if(i == j){//由于这里还得使用j,所以不能直接在嵌套的for循环定义,要在外边定义
                System.out.print(i + " ");
            }
        }
    }
}

题目2代码:

public class ForTest{
    public static void main(String[] args){
        //编写for循环,找出1~10000中所有素数,要求每8个换一行输出。
        //找素数同上,这里要求每8行换一行输出,可以设置一个记录变量记录输出的一个值。
        //每8次加一个换行符,然后清空记录
        int j;
        int record = 0;
        for(int i=2;i<=1000;i++){
            for(j =2;j<=i;j++){
                if(i % j ==0){
                    break;
                }
            }
            if(i==j){
                System.out.print(i + " ");
                record +=1;
                if(record == 8){
                    System.out.print('\n');
                    record = 0;
                }
            }
        }
        
    }
}

你可能感兴趣的:(JAVA学习题目,java,开发语言,算法)