没做出来啊,原来有这么多方法啊。
首先,我连质数是什么都不知道!
质数:只能被本身和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 stub for(int x=100;x<=999;x++){ boolean flag=true; for(int y=2;y
判断某一个三位数是否是质数
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
列出所有介于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循环。