我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
注意,是第n个素数到第m个素数之间的所有的素数,并不是n和m之间的所有的素数。
代码:
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
System.out.println("请输入n和m:");
int n=in.nextInt();
int m=in.nextInt();
int count=0;
int result=0;
for (int i=2;;i++)//条件省略,因为不知道第200个素数是多大
{
int isPrime=1;
for(int j=2;j<i;j++)//判断是否是素数
{
if(i%j==0)
{
isPrime=0;
break;
}
}
if(isPrime==1)
{
count+=1;
if(n<=count&&count<=m)//计算n到m之间的素数和
{
result+=i;
}
}
if(count==m)//到第m个素数时输出(用这个是因为跳不出for循环)
{
System.out.println(result);
break;
}
}
}
}
写的好烂,想来应该是要用数组的,等我学完数组再发一篇。