黑马程序员技术交流社区
标题:
判断101-200之间有多少个素数,并输出所有素数(三种方法),欢迎探讨增加~
[打印本页]
作者:
funtyung
时间:
2016-3-24 20:53
标题:
判断101-200之间有多少个素数,并输出所有素数(三种方法),欢迎探讨增加~
第一种.public static void main(String[] args) {
int count = 0;
for(int i = 101;i<200;i++){
boolean flag = true;//假设当前的i为素数
//i为当前要判断的数,只需要从2-(i-1),区间找到一个数,能整除,就说明i不是素数
for(int j = 2;j<i;j++){
//说明又找到了一个数能整除,i就不是素数
if(i%j==0){
flag = false;//i不是素数,不用继续判断
break;
}
}
//i是素数
if(flag){
System.out.println(i);
count++;//用于统计素数的个数
}
}
System.out.println("101-200之间的素数个数为:"+count);
}
第二种.public static void main(String[] args) {
int count = 0;
for(int i = 101;i<200;i++){
int j = 2;
//i为当前要判断的数,只需要从2-(i-1),区间找到一个数,能整除,就说明i不是素数
for(;j<i;j++){
//说明又找到了一个数能整除,i就不是素数
if(i%j==0){
break;
}
}
//i是素数
if(j>=i){
System.out.println(i);
count++;//用于统计素数的个数
}
}
System.out.println("101-200之间的素数个数为:"+count);
}
第三种.public static void main(String[] args) {
int count = 0;
for(int i = 101;i<200;i++){
if(isPrime(i)){
System.out.println(i);
count++;//用于统计素数的个数
}
}
System.out.println("101-200之间的素数个数为:"+count);
}
//定义一个方法,用于判断是否为素数
public static boolean isPrime(int i){
//i为当前要判断的数,只需要从2-(i-1),区间找到一个数,能整除,就说明i不是素数
for(int j = 2;j<i;j++){
//只要找到一个数能整除,直接返回false
if(i%j==0)
return false;
}
//是素数
return true;
}
作者:
ShallDoll
时间:
2016-3-24 21:15
i为当前要判断的数,只需要从2-i的开方根,区间找到一个数,能整除,就说明i不是素数
作者:
唯爱唐嫣
时间:
2016-3-24 23:04
判断范围二分之一i,或者根号i
作者:
风二中kyf
时间:
2016-3-24 23:52
赞一个,666~~~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2