质数判断
问题,输出1000以内质数。
什么是质数?
只有1和他自己两个因数的是质数。
思路
1. 创建一个数为递增素数,从2开始。
2. 创建一个因数,从2开始。
3. 创建两个循环,两个循环嵌套,分别使质数和因数递增。
4.
graph LR
余数为零-->是
余数为零-->否
是-->判断该因数是否为质数
否-->继续循环
判断该因数是否为质数-->yes
判断该因数是否为质数-->no
yes-->输出质数
no-->跳过这个数不输出
输出质数-->继续循环
跳过这个数不输出-->继续循环
int q;
int l;
for( q=2;q<=1000;q++){
for( l=2;l<=q;l++){
if(q%l==0){
if(q==l){
System.out.println(q);
break;
}else
break;
}
}
方法2
- 创建一个数为递增素数,从2开始。
- 创建一个因数,从2开始。
- 创建一个布尔变量初始值为true代表这个数是质数
4.创建一个嵌套循环- 5.
graph LR
余数为零-->是
余数为零-->否
是-->布尔变量为false,跳出循环
否-->继续循环直到不满足条件
布尔变量为false,跳出循环-->如果布尔值为true,输出质数
继续循环直到不满足条件-->如果布尔值为true,输出质数
如果布尔值为true,输出质数-->重置布尔变量继续循环
boolean s=true;
for(int a=2;a<=1000;a++){
for(int b=2;b<=Math.sqrt(a);b++){
if(a%b==0){
s=false;
break;
}
}
if(s){
System.out.println(a);
}
s=true;
}
本文介绍了一种算法来找出1000以内的所有质数,并提供了两种实现方式:一种通过逐个检查每个可能的因数,另一种利用布尔变量标记非质数,以提高效率。
4749

被折叠的 条评论
为什么被折叠?



