您的位置:首页 > 其它

【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

2017-03-13 19:30 369 查看
/**
2017年3月2日9:25:30
java基础50道经典练习题 例2
Author: ZJY
Purpose: 查找素数应用
【程序2】
题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),
如果能被整除,则表明此数不是素数,反之是素数。
*/
import java.util.Scanner;

public class ProgramNo2_1
{
public static void main(String[] args)
{
int primeNumber = 0;

System.out.print("请输入需要查找素数个数的范围的最小值: ");
Scanner sc = new Scanner(System.in);
int min = sc.nextInt();
System.out.print("请输入需要查找素数个数的范围的最大值: ");
int max = sc.nextInt();

if(min > max) {
System.out.print("输入范围有误!!");
System.exit(-1);
}
for (int index=min; index<=max; index++) {
if(isPrime(index)) {
primeNumber++;
//System.out.println(index); //打印素数元素
}
}
System.out.printf("在%d到%d范围内的素数有: %d个", min, max, primeNumber);
}
private static boolean isPrime(int number) {
if(number < 2) return false;

int divisor = 2, remainer = 0;
while (Math.sqrt(number) >= divisor) {
remainer = number%divisor;
if(0 == remainer) return false;
divisor++;
}
return true;
}
}
/**
2017年3月2日9:25:30
java基础50道经典练习题 例2
Author: ZJY
Purpose: 查找素数应用
*/
import java.util.Scanner;

public class ProgramNo2_2
{
public static void main(String[] args)
{
int primeNumber = 0;

System.out.print("请输入需要查找素数个数的范围的最小值: ");
Scanner sc = new Scanner(System.in);
int min = sc.nextInt();
System.out.print("请输入需要查找素数个数的范围的最大值: ");
int max = sc.nextInt();

for (int i=min; i<=max; i++) {
if(isPerime(i)) {
primeNumber++;
System.out.printf(" %d", i); //打印素数元素
if(primeNumber%10 == 0)
System.out.println();
}
}
System.out.println();
System.out.println("在" + min + "到" + max + "范围内的素数有: " + primeNumber);
}
public static boolean isPerime(int n) {
boolean flag = false;

if(n < 2) return flag;
for (int i=2; i<=Math.sqrt(n); i++) {
if((n % i) == 0){
flag = false;
break;
}else {
flag = true;
}
}
return flag;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐