源程序:
package com.oracle.core;
public class vik {
public static void main(String[] args) {
//打印1-1000内所有素数
for(int i=1;i<=1000;i++){
int count=0;
for(int j=1;j<=i;j++){
if(i%j==0){
count++;
}
}
if(count==2){
System.out.println(i);
}
}
}
}
程序流程:
public class vik {
public static void main(String[] args) {
// 外层循环:拿数,即从1-100开始拿数;将拿的数给二层循环;
// 如i=36时;
for(int i=1;i<=100;i++){
// 定义计数值count=0:在每次换新数的时候(如i=35循环结束,
// 换成36时,将count置0,去计算当前数的count的值
int count=0;
/* 内层循环:去计算count值(count值代表所拿的数的因数个数)
计算因数(一个数的因数是大于等于1小于等于2的)个数方法:例
如拿的数为36,36模1==0,36模2==0……36模36==0;
如果等于0则说明是它的因数,同时count+1; */
for(int j=1;j<=i;j++){
if(i%j==0){
count++;
}
}
/* 上一步,内层循环计算出了所拿的数的因数个数count,所以内层
循环计算完本次的数之后,跳出来,写一个if语句判断
count值是否==2 */
if(count==2){
System.out.println(i);
}
}
}
}
/*
程序流程:
main:
利用第一层循环:
1、从1—100之间逐个拿数
2、将因数个数count置0
(二、内层循环:
将拿的数,从1-它本身开始做模运算
如果=0,则因数个数count+1
)
3、if语句判断内层循环所计算的count值==0,如果=2,则打印出本素数
注:括号里面的指插入了内层循环,其它均属有外层循环
*/