例如需求:打印出2000以内的所有质数。 思路: 用第一个循环去从2开始遍历2000以内的所有奇数,因为偶数一定不是质数;并用第二层循环去判断所遍历的数是不是质数, 要判断遍历的数是不是质数,只需整除完从2到自身的sqrt()的所有奇数即可,如果都没有被整除,则 该数为质数,否则不为质数。 */ class ZhiShuDemo { public static void main(String[] args) { printZhiShu(2000); } public static void printZhiShu(int key) { int count=1,flag=0;//定义一个计数器和标记; //将2到9之间的数直接放到循环外面去判断,可省去无效的判断次数; System.out.println(2+"--"+count+" "); for (int x=3;x<9 ;x+=2 ) { count++; System.out.println(x+"--"+count+" "); } for (int x=9;x<=key ;x+=2 )//对9到2000的数进行遍历; { for (int y=3;y<=(int)Math.sqrt(x);y+=2)//判断是否为质数,只需整除完2到自身的一半; |