PRELOADER

不念过去 不负现在 不畏将来

当前文章 : 《素数2.0》

12/4/2018 —— 

前几天写了一个查找素数的程序,现在写一个计算指定素数的和。例如2为第一个素数,3为第二个素数,现在需要求第n到m个素数的和。

代码:

  package sum_PrimeNumber;

  import java.util.Scanner;

  public class sum_PrimeNumber {

      public static void main(String[] args) {
          Scanner in = new Scanner(System.in);
          int n = in.nextInt();
          int m = in.nextInt();
          int x=0;
          int y=0;
          int i=0;
          int sum=0;
          for (x=2;x<10000;x++)
          {   
              int flag=1;
              for (y=2;y<x;y++)
              {
                  if(x%y==0)
                  {
                      flag=0;
                      break;
                  }
              }
              if (flag==1)
              {
              i++;
                  if(i>=n)
                  {
                      if(i<=m)
                      {
                          sum+=x;
                      }
                  }                
              }
          }
          //System.out.println(n+" "+m);
          System.out.println(sum);
      }
}
  • 1、核心的素数算法是一样的,可以默认一个数是素数,即给flag立初值为1。之后用2到该数本身取余,一旦出现余为0,即该数不是素数,则flag置为0,跳出循环,检查下一个数。若flag一直为1,则说明一直没出现可以与该数整除的数,该数就为素数。
  • 2、这段代码需要实现指定序号的一些素数的和,所以下一步就需要为每一个素数确定一个序号。这个序号订位i,初值为0。当找到一个素数时,这个i+1,但i满足所给的范围时,将素数相加。
  • 3、下图为流程图:
    enter description here