1. 程式人生 > >我們認為2是第一個素數,3是第二個素數,5是第三個素數,依次類推。 現在,給定兩個整數n和m,0

我們認為2是第一個素數,3是第二個素數,5是第三個素數,依次類推。 現在,給定兩個整數n和m,0

我們認為2是第一個素數,3是第二個素數,5是第三個素數,依次類推。

現在,給定兩個整數n和m,0<n<=m<=200,你的程式要計算第n個素數到第m個素數之間所有的素數的和,包括第n個素數和第m個素數。

/*我們認為2是第一個素數,3是第二個素數,5是第三個素數,依次類推。
現在,給定兩個整數n和m,0<n<=m<=200,你的程式要計算第n個素數到第m個素數之間所有的素數的和,包括第n個素數和第m個素數。
 思路:是先將1至200個素數存到陣列primes中,然後根據輸入的 m和n相加求和
*/
package hello;


import java.util.Scanner;


public class Main {


public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int[] primes = new int[200];
primes[0]=2;
int cnt = 1;
int n;
int m;
n=in.nextInt();
m=in.nextInt();

if(n>0&&n<=200&&m>0&&m<=200)//確定前200個素數
{
MAIN_LOOP:
for(int x=3;cnt<200;x++)
{
for(int i=0; i<cnt ;i++)
{
if(x%primes[i]==0)
{
continue MAIN_LOOP;
}
}
primes[cnt ++]=x;//這裡仿照翁老師課上例程將前200個素數存入陣列
}
int i;
int sum=0;
for (i=0;i<(m-n+1);i++)//指定的從第n個素數加到第m個素數,這裡2為第一個素數
{
sum=sum+primes[n-1+i];
System.out.println(primes[n-1+i]);
}
System.out.println(sum);
}
}
}