标签:style color os io strong for ar div 代码
本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出2个正整数M和N(1<=M<=N<=500)。
输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
输入样例:10 31输出样例:
7 143
我的第一次代码:
#include<stdio.h>
int main(){
int M,N,count=0,sum=0,i,j;
scanf("%d %d",&M,&N);
for(i=M;i<=N;i++){
int isPrime=1;
for(j=2;j<i;j++){
if(i%j==0){
isPrime=0;
break;
}
}
if(isPrime==1){
count++;
sum+=i;
}
}
printf("%d %d",count,sum);
return 0;
}
运行之后发现4个测试点只有2个正确,后发现,没有把1不是素数进行考虑导致出错,进行改版之后:做一个小变换
if
(M==1)
{M=2;
}
优化方法:
#include<stdio.h>
int main()
{
int n,i,M,N,sum=0,j=0;
scanf("%d %d",&M,&N);
if(M==1)
{M=2;
}
for(n=M;n<=N;n++)
{
for(i=2;i<n;i++)
{
if(n%i==0)
break;
}
if(i==n)
{
j++;
sum=sum+n;
}
}
printf("%d %d",j,sum);
return 0;
}
标签:style color os io strong for ar div 代码
原文地址:http://www.cnblogs.com/VASSALKING/p/3930857.html