质数判断
问题,输出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;
}