题目内容:
我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
注意,是第n个素数到第m个素数之间的所有的素数,并不是n和m之间的所有的素数。
输入格式:
两个整数,第一个表示n,第二个表示m。
输出格式:
一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
输入样例:
2 4
输出样例:
15
import java.io.*;
import java.util.*;
public class Main {
//下面的函数用来判断是否是素数
public static boolean isPrime(int n)
{
boolean flag=true;
if(n<0||n==1)
{
flag=false;
}
else if(n==2)
{
flag=true;
}
else if(n%2==0)
{
flag=false;
}
else
{
for(int i=3;i<=Math.sqrt(n)+1;i+=2)
{
if(n%i==0)
{
flag=false;
break;
}
}
}
return flag;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int m=in.nextInt();
int count =1;
int [] num=new int[m+10];
if(0<n&&n<=m&&m<=200)
{
for(int i=2;count<=m;i++)
{
if(isPrime(i))//调用isPrime()函数
{
num[count]=i;
count++;
}
}
int sum=0;
for(int i=n;i<=m;i++)
{
sum+=num[i];
}
System.out.println(sum);
}
}
}