没做出来啊,原来有这么多方法啊。

首先,我连质数是什么都不知道!

质数:只能被本身和1整除的数


帖子里回复了不少方法:

class Zhishu 
{public static void main(String[] args) {int count=0;for(int i=1;i<=100;i++){count=0;for(int j=1;j<=i;j++){if(i%j==0){count++;}}if(count==2||count==1){System.out.print(i+" ");}}}
}
package com.ms.test;public class GetSushu {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubfor(int x=100;x<=999;x++){boolean flag=true;for(int y=2;y<x;y++){if(x%y==0){flag=false;break;}}if(flag){System.out.println(x);}}}}



判断某一个三位数是否是质数

import java.util.Scanner;public class PrimeNum {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个三位数");int  num = sc.nextInt();if(num<100 || num>999)throw new RuntimeException("输入数据不合要求");getPrime(num);}public static void getPrime(int num){for(int x=2;x<num;x++){if(num%x!=0){if(x==num-1){System.out.println(num+"是质数");}continue;}else{System.out.println(num+"不是质数");break;}                                }                }
}


列出所有介于100到你输入的三位数中的质数(不包含100)

import java.util.Scanner;public class TotalPrimeNum {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个三位数");int  num = sc.nextInt();if(num<100 || num>999)throw new RuntimeException("输入数据不合要求");getPrime(num);}public static void getPrime(int num){int count = 0;//计数器记录质数个数W:for (int x = 101; x <= num; x++) {Q:for (int y = 2; y < x; y++) {if(x%y!=0){if(y==x-1){System.out.print(x+"\t");count++;continue W;}continue Q;}else{continue W;}}}System.out.println();System.out.println("101到"+num+"共有质数个数为:"+count);        }
}


经过上机,就记住第二种(使用flag标记判断)方法吧。

另外,上机时也发现了自己对 if — break 判断的不熟练,

for (int y = 2; y < x; y++) {if (x % y == 0) {flag = false;break;}}


例如,上面的循环,如果符合条件,

break之后就中断了for循环了。


注意:break是中断当前最近的一个for循环。