日期:2014-05-20  浏览次数:20682 次

100分 求输入1个数N 打印前N个素数的代码
求输入1个数N 打印前N个素数的代码
输入N

打印前N个



------解决方案--------------------
import java.io.*;

public class Test {
public static void printPrimeNum(int n) {
int temp =(int)(Math.sqrt(n) + 1);
for(int i = 2;i<temp; i++) {
if(n%i == 0) {
return;
}
}
System.out.println(n);
}
public static void main(String[] args)
throws IOException {
System.out.print("entry :>>");
BufferedReader in = new BufferedReader(
new InputStreamReader(System.in));
int n = Integer.parseInt(in.readLine());
for(int i = 2;i<n+1;i++) {
printPrimeNum(i);
}
}
}
------解决方案--------------------

// 前边的兄弟可能没有看清楚题意,题目是要求输入N,输出前N个素数
// 而不是输出所有小于N的素数,这里N应为为正整数才有意义
// NPrimes.java
// jdk>=1.5

import static java.lang.System.out;
import java.util.Scanner;
import java.math.BigInteger;

public class NPrimes 
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
out.println("题目:求输入1个数N 打印前N个素数 ");
out.println("输入N");
int n=Integer.parseInt(sc.next());

out.println("打印前N个");
BigInteger bi = new BigInteger("0");
BigInteger tempBi = new BigInteger("0");

for(int i=0;i<n;i++)
{
bi = tempBi.nextProbablePrime();
tempBi=bi;

out.println("第"+(i+1)+" 个: "+bi);
}

sc.close();
}
}
------解决方案--------------------
import java.util.*;
public class PrimeNumber {
public static void main(String[] args){
long count = 1;
Scanner in = new Scanner(System.in);
long n = 0;
long m = 0;
while(true){
System.out.print("请输入N的值==>");
n = in.nextLong();
if(n>1){
break;
}

while(true){
System.out.print("打印前M个数?==>");
m = in.nextLong();
if(m>0){
break;
}
}
System.out.print("2 ");
for(int i=3;i<=n;i+=2){
boolean flag = true;
for(int j=2;j<i;j++){
if(i%j==0){
flag = false;
}
}
if(!flag){continue;}
System.out.print(i+" ");
count++;
if(count==m){
break;
}

}

}
第一次发,我怎对不齐啊??????
------解决方案--------------------
本来昨晚我是第一个回帖的,不幸写好后,网络出现问题,郁闷.
真是一个令人怀念的题目,不知道楼主是要打印前n个素数还是n前面的素数,下面程序片段楼主根据需要自己改吧,写程序完全照搬是不会有进步的
/**
* @param args
*/
public static void main(String[] args) {
int num = Integer.parseInt(readSystemIn());
for (int i = 1; i <= num; i++) {
if (isPrime(i))
System.out.println(i);
}
}

/**
* 判断一个数是否是素数

* @param num
* @return
*/
private static boolean isPrime(int num) {
for (int k = 2; k <= num/2; k++) {
if (num % k == 0)
return false;
}
return true;
}

/**
* 从控制台读取一串字符串

* @return
*/
public static String readSystemIn() {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
return br.readLine();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
------解决方案--------------------
for example