本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
输入样例:
10 31
输出样例:
7 143
我的代码:一遍过20/20
注意点:m1;以及m1&&n==1;
我的代码是在main函数中设一个if来判断,优质代码可以直接在f函数中,if(cnt==0&&i!=0);
p1
#include
/*本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。*/
int f(int i);
int main(void){
int m,n,i,cnt1=0,sum=0;
scanf("%d%d",&m,&n);
if(m==1&&n==1){
sum=0;cnt1=0;
}else {
if(m==1){
m=2;
}
for(i=m;i<=n;i++){
if(f(i)){
sum+=i;
cnt1++;
}
}
}
printf("%d %d",cnt1,sum);
return 0;
}
int f(int i){
int x,cnt=0;
for(x=2;x<i;x++){
if(i%x==0){
cnt++;
}
}
if(cnt==0){
return 1;
}else return 0;
}
p2
#include
/*本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。*/
int f(int i);
int main(void){
int m,n,i,cnt1=0,sum=0;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++){
if(f(i)){
sum+=i;
cnt1++;
}
}
printf("%d %d",cnt1,sum);
return 0;
}
int f(int i){
int x,cnt=0;
for(x=2;x<i;x++){
if(i%x==0){
cnt++;
}
}
if(cnt==0&&i!=1){
return 1;
}else return 0;
}
p3:
#include
/*本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。*/
int f(int i);
int main(void){
int m,n,i,cnt1=0,sum=0;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++){
if(f(i)){
sum+=i;
cnt1++;
}
}
printf("%d %d",cnt1,sum);
return 0;
}
int f(int i){
int x,flag=1;//是素数。
for(x=2;x<i;x++){
if(i%x==0){
flag=0;
break;
}
}
if(flag==1&&i!=1){
return 1;
}else return 0;
}