public class PrimeSum{ public static boolean isPrime(int num){//判断是不是质数 for(int i=2;i<=java.lang.Math.sqrt(num);i++){ if(num%i==0)return false; } return true; } public static int nextPrime(int num){//比参数大的下一个质数 int i=num+1; while(true){ if(isPrime(i))break; i++; } return i; } public static int sum(int num){//参数代表质数的个数 int sum=0; int start=1;//从1开始,第一个质数是2 for(int i=0;i<num;i++){ int nextPrime=nextPrime(start); sum+=nextPrime; start=nextPrime; } return sum; } public static void main(String args[]){ System.out.println(sum(7)); } }
这是你自己出的题目吧。2不算质数? 如果按你写的话。那楼上的是错的。import java.util.scanner; class prime { int num; // 接受存放输入的数字 void inputnum() { scanner sr = new scanner(system.in); if(sr.hasnextint()) num = sr.nextint(); } void calcandoutput() { for(int i=2;i<num;i++) { int j; int sqr = (int)math.sqrt(i); for(j=2;j<=sqr;j++) if(i%j==0) break; if(j>sqr) { system.out.print(i + " "); } } system.out.println(); } public static void main(string args[]) { prime p = new prime(); p.inputnum(); p.calcandoutput(); } }
public class PrimeSum{
public static boolean isPrime(int num){//判断是不是质数
for(int i=2;i<=java.lang.Math.sqrt(num);i++){
if(num%i==0)return false;
}
return true;
}
public static int nextPrime(int num){//比参数大的下一个质数
int i=num+1;
while(true){
if(isPrime(i))break;
i++;
}
return i;
}
public static int sum(int num){//参数代表质数的个数
int sum=0;
int start=1;//从1开始,第一个质数是2
for(int i=0;i<num;i++){
int nextPrime=nextPrime(start);
sum+=nextPrime;
start=nextPrime;
}
return sum;
}
public static void main(String args[]){
System.out.println(sum(7));
}
}
如果按你写的话。那楼上的是错的。import java.util.scanner;
class prime
{
int num; // 接受存放输入的数字
void inputnum()
{
scanner sr = new scanner(system.in);
if(sr.hasnextint())
num = sr.nextint();
}
void calcandoutput()
{
for(int i=2;i<num;i++)
{
int j;
int sqr = (int)math.sqrt(i);
for(j=2;j<=sqr;j++)
if(i%j==0) break;
if(j>sqr)
{
system.out.print(i + " ");
}
}
system.out.println();
}
public static void main(string args[])
{
prime p = new prime();
p.inputnum();
p.calcandoutput();
}
}