java求2-1000的所有素数

时间:2025-05-07 19:21:06

 什么是素数:简单来说就是除了1和自身以为,别的数都不能整除。当然,不能比他本身大。

求:2-1000 (包括2,1000)之间的素数

输出格式:每八个数字为一行

代码如下:

public class PrimeNumber {

	public static void main(String[] args) {
		//声明需要用到的变量
		int i = 2;  // i 是起始变量
		boolean prime; // prime 用来判断是否存在否定素数的因子
		int amount=0;   //累加器,统计素数个数

		while(i<=1000) {
                        //这里先重置一下布尔值的默认值,以便后面判断是否存在否定因子
			prime = true;
                        //进入循环,判断是否存在否定因子
			for(int n = 1 ; n < i ; n++ ) {
                                //如果存在否定素数的因子,改变默认布尔值
				if(i%n == 0 && n!=1  )prime = false;
				
			}                       
			if(prime)amount++;  //素数累加器自增
			if(prime)(i+"\t"); //判断是否是素数
			if(h%8 == 0)(); //控制输出行
			i++;
		}
	}

}

还有一种方法是用C写的可以参考判断条件,代码如下:

#include <>
void main()
{

    int n,i;  //声明变量
    scanf("%d",&n); //输入需要判断的数字
    //进入循环开始判断
    for(i=2;i<n;i++){

          //如果存在否定素数的因子就终止循环
          if(n%i==0) break;
     }
     //判断,如果在遇到他本身之前没有否定数字就说明是素数,相反就不是(肯定比本身小)
     if(i>=n){

            printf("n is prime"); 
     }
     else{

            printf("n is not prime");
     }
}

以上方法并不适用于数字比较大的问题中,如果需要使用到比较大的问题中需要先开方,减少判断的次数。