题目内容
我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
现在,给定两个整数n和m,
0<n<=m<=200
0
<
n
<=
m
<=
200
,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
注意,是第n个素数到第m个素数之间的所有的素数,并不是n和m之间的所有的素数。
输入格式
两个整数,第一个表示n,第二个表示m。
输出格式
一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
输入样例
2 4
输出样例
15
解析
注意看题目!!!,求得是第几个素数的和。素数2,3,5,7,……第二个素数是3,第四个是7,
3+5+7=15
3
+
5
+
7
=
15
,刚开始我理解错了,以为是算2-4之间的素数的和(有兴趣可以看看我补充的)。
import java.util.Scanner;
public class Main {
private static Scanner in;
public static void main(String[] args) {
in = new Scanner(System.in);
int m=0,n=0;
n=in.nextInt();
m=in.nextInt();
int k=2;
int count=0,sum=0;
while (k!=0) {
Boolean flag=true;
for(int i=2;i<=Math.sqrt(k);i++) {
if(k%i==0) {
flag=false;break;
}
}
if(flag==true)
{
count++;
if (count>=n&&count<=m) {
sum+=k;
}
if (count>m) {
break;
}
}
k++;
}
System.out.print(sum);
}
}
题目内容:
我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
现在,给定两个整数n和m,
0<n<=m<=200
0
<
n
<=
m
<=
200
,你的程序要计算第n个数到第m个数之间所有的素数的和,包括第n个数和第m个数。
输入格式:
两个整数,第一个表示n,第二个表示m。
输出格式:
一个整数,表示第n个数到第m个数之间所有的素数的和,包括n和m。
输入样例:
2 4
输出样例:
5
解析:
这个题就不一样了,只写出两个数之间的素数,2,3,4中2和3是素数
2+3=5
2
+
3
=
5
。
import java.util.Scanner;
public class Main {
private static Scanner in;
public static void main(String[] args) {
System.out.println("输入两个数a和b:");
in= new Scanner(System.in);
int a,b;
a=in.nextInt();
b=in.nextInt();
int sum=0;
if(a==1)
a++;
for(int i=a;i<=b;i++) {
Boolean tmp=true;
for(int j=2;j<i;j++) {
if(i%j==0)
{
tmp=false;
break;
}
}
if(tmp==true)
{
sum+=i;
}
}
System.out.println("a-b之间所有素数之和="+sum);
}
}