Java for循环:[1]100以内所有质数
1、打开eclipse
输入如下代码
public class 一到一百所有的质数 {
public static void main(String[] args) {
for (int i = 2; i <= 100; i++) {
boolean flag = true;
for (int j = 2; j < i; j++) {
if ( i % j == 0) {
flag = false;
break;
}
}
if(flag)
{System.out.print(" "+i);}
}
}
}
2、解题思路,假设所有的数都是质数,再一个个排除不是质数的数.
这里用
if ( i % j == 0) {
flag = false;
break;
}
i % j ==0
里面的j的值永远小于 i 因为要满足 j < i 这个条件
内for每次执行 j 都会被重新赋值
所以每次里面的for 每次循环都会用j 从2开始 被i 除 如果不能整除 说明则为 质数
因为 j是从2开始 且小于i 这就满足 质数的条件 质数只能被1和它本身整除
这里写就是说 除去1和它本身 如果还能被别的数整除 那么就不是质数
这里把flag给赋值为false
3、在外面的for 循环内 写上
if(flag)
{System.out.print(" "+i);}
为什么要这样写 因为上面说了 如果i % j ==0 也就是i除以j能够整除 则不是质数
flag被赋值为false
反过来 只要flag不等于false 就都是质数
所以这里判断flag是不是true 如果是则输出 i i就是质数
由于是写在外for循环里面
所以每次都会被执行 所以会输出所有的质数
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。