大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
运用java8新特性stream来解决
成都创新互联是专业的通川网站建设公司,通川接单;提供成都做网站、成都网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行通川网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
参考以下代码
/**
* IntStream.range(1,10001) :获取一个stream,是从1-10000的
* filter: 取出stream每个数字进行过滤,比如选取数字300,则再构造一个stream,从2-299,依次用300取余2-299中的数,若有一个是整除,余数为0的话,这个数字就不是我们要找的质数,跳过
* forEach:打印经过filter过滤后的stream中的每个数
*/
IntStream.range(1,10001).filter(outerInt- !IntStream.range(2,outerInt).anyMatch(innerInt-outerInt%innerInt==0))
.forEach(System.out::println);
求1-N以内的所有素数,实现思路如下:
1、 得到1到n之间的素数,存到一个ArrayList集合。
2、判断一个数是不是素数:只能被1和本身整除
说明:从2开始除,不需要到n,也就是循环条件是 n 就可以,这之间只要被整除了,那么他就不是素数了。
3、设置主函数,运行 getPrimeNumberToN获取限定范围内的素数。
执行结果图:
扩展资料:
实现功能的编程事项:
1、模块化思想。
先拆分需求,先拆分先考虑怎么确定一个数是不是素数,然后再复用到所有。不能把方法堆到一起,否则无法复用代码。
2、注意注释。
就算是自己的测试代码,尽量写清楚注释,这样即使过了三个月,再看代码,也能清晰明了。不要觉得简单,就懒得注释。
3、注意参数命名。
从类名到方法名,再到变量名,都不能随意取名,关于这个命名,不要嫌弃长,重点是意思清楚明白。见名知意(语义化),是最好的。
int i,j;
for(i = 2; i = 100; i++){//从2数到100,判断之间的每一个数是否是质数
//下面的循环是质数判断过程
for(j = 2; j = i/2; j++){
if(i % j == 0)
break;//如果这个数能被一个数整除,那么这个数不是质数。break的作用是跳出此次循环,进入下一次循环。
}
if(j i/2){
System.out.println(i);//如果这个数不能被自身1/2的数整除,他就是质数,输出这个数.System.out.println()这个语句就是输出语句
}
}
System.out.println();//这句语句是多余的,什么也没打印。
完整代码及运行结果如图。
拓展资料
质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
这道题只要理解质数的计算方法就容易解答。
最大质因数
13195的所有质因数为5、7、13和29。600851475143最大的质因数是多少?
long i=2,n=600851475143L;
while (in){ //避免n本身就是质数,否则循环到sqrt(n)就可以了
if(n % i==0){
n=n/i;
i--;
}
i++;
}
System.out.println( i );
第10001个素数
列出前6个素数,它们分别是2、3、5、7、11和13。我们可以看出,第6个素数是13。
第10,001个素数是多少?
第1至10001都找出来了:
int a[]=new int[10001];
a[0]=2;
a[1]=3;
int n=5,k,i=2;
while (i10001){
for ( k=0;ki;k++) if(n % a[k] ==0 ) break;
if (k ==i ) a[i++]=n;
n+=2;
}
System.out.println(a[10000] );