编写一个Java程序求质数的和,F(7)=1+3+5+7+11+13+17=58
F(7)代表7个质数相加
求 F(20)?

解决方案 »

  1.   


    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.   

    这是你自己出的题目吧。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();
    }
    }