求任意输入两个正整数之间的素数个数及相加的和(未使用函数)
#include <stdio.h>
int main()
{
int m,n;
int sum = 0;
int cnt = 0;
int i;
scanf("%d %d",&m,&n);
if(m==1){
m=2;
}
for(i=m;i<=n;i++)
{
int isPrime = 1;
int k;
for(k=2;k<i-1;k++)
{
if(i%k==0)
{
isPrime = 0;
break;
}
}
if(isPrime==1)
{
sum+=i;
cnt++;
}
}
printf("%d %d \n",cnt,sum);
return 0;
}
缺点:所使用大括号太多,容易匹配混乱,而且太多循环嵌套,容易出错,不如使用函数调用。
#include <stdio.h>
int isPrime(int i){
int ret = 1;
int k;
for(k=2;k<i-1;k++)
{
if(i%k==0)
{
ret= 0;
break;
}
}
}
int main()
{
int m,n;
int sum = 0;
int cnt = 0;
int i;
scanf("%d %d",&m,&n);
if(m==1){
m=2;
}
for(i=m;i<=n;i++)
{
if(isPrime(i))
{
sum+=i;
cnt++;
}
}
printf("%d %d \n",cnt,sum);
return 0;
}