我编写的代码:
#include<stdio.h>
#include<math.h>
int isPrime(int m,int n)
{
int i, k;
k = (int)sqrt(n);
for (i = m; i <= n; i++)
{
if (k % i == 0)
return(0);
}
return(1);
}
int sum(int m, int n)
{
int i, s=0;
for (i = m; i <= n; i++)
if (isPrime(m,i) == 1)
s = s + i;
return(s);
}
int main(void)
{
int s, m, n;
scanf_s("%d%d", &m,&n);
s = sum(m,n);
printf("%d", s);
return 0;
}
修改处见注释,供参考:
#include<stdio.h>
#include<math.h>
int isPrime(int n) //int isPrime(int m,int n)
{
int i, k;
if (n <= 3) return n > 1;
//k = (int)sqrt(n);
for (i = 2; i * i <= n; i++) //for (i = m; i <= n; i++)
{
if (n % i == 0) //(k % i == 0)
return(0);
}
return(1);
}
int sum(int m, int n)
{
int i, s=0;
for (i = m; i <= n; i++)
if (isPrime(i) == 1) //(isPrime(m,i) == 1)
s = s + i;
return(s);
}
int main(void)
{
int s, m, n;
scanf_s("%d%d", &m,&n);
s = sum(m,n);
printf("%d", s);
return 0;
}