长春做网站的电话,地方网站开发,造价员建设部网站,衡水建站公司统计n以内的素数个数
素数#xff1a;只能被1和自身整除的自然数#xff0c;0和1除外#xff1b;
举例#xff1a;
输入#xff1a;100 输出#xff1a;25
import java.util.*;
class Test1{public static void main(String[] args){int a 100; //输入数字//…统计n以内的素数个数
素数只能被1和自身整除的自然数0和1除外
举例
输入100 输出25
import java.util.*;
class Test1{public static void main(String[] args){int a 100; //输入数字// 统计素数个数int count0;for(int i 2; ia; i){int flag0;//检查有没有被其他数字整除如果整除则flag1for (int j 2; j*ji; j){ //j*ji 其实是j根号i,以为2*6和6*2是一样的所以少检查一遍。if(i%j0 ){flag 1;break;}}//统计素数的个数if (flag !1){count;System.out.println(i); //查询到当前的素数为i}}System.out.println(count); //素数的总个数}}
改进以空间换时间埃氏筛选利用合数概念来排除所有合数剩下的都是素数。
public class Test1_1 {public static void main(String[] args){int n 100;int flag 0;boolean[] isPrime new boolean[n1]; //默认都是素数for(int i2; in;i){//这里从i开始是避免出现算过2*4又出现4*2for(int ji; j*i n;j){isPrime[i*j]true; //如果发现一个数是两数的乘积则置为true为合数。}}//统计素数的个数int k 0;for(boolean i : isPrime){if(!i){flag;System.out.println(kk);}k;}//0和1除外所以要减2;System.out.println(flag-2);}
}结果展示