Fetch the repository succeeded.
我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
两个整数,第一个表示n,第二个表示m。
一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
2 4
15
#include <stdio.h>
// 素数数组,第一个表示素数个数
int prime[201]={3,2,3,5};
// 计算是否为素数,如果是则加入数组
// 应用素数数组作为测试因数,减少循环次数
int isprime(int n)
{
int i, result=1;
for (i=1; i<=prime[0]; ++i)
if (n % prime[i] ==0)
{
result =0;
break;
}
if (result && prime[prime[0]]<n)
{
prime[0]++;
prime[prime[0]]=n;
}
return result;
}
int main()
{
int i=7, a, b, sum=0;
// 计算出前200个素数数组
while (prime[0]<200)
{
isprime(i);
i += 2;
}
scanf("%d %d", &a, &b);
for (i=a;i<=b; ++i)
sum +=prime[i];
printf("%d\n", sum);
return 0;
}
Sign in for post a comment
Comment ( 0 )