c语言中m~n内所有的素数求10~8887之间的所有素数的个数

求500以内的10个最大素数及其和并分别输出
法一:循环搜索#include<stdio.h>
int main(void)
{
int i, j;
int count = 0;//保持已经找到的素数个数
int sum = 0;
for (i = 500; i > 0; i--)
{
for (j = (i - 1); j > 0; j--)
if (i % j == 0)
break;
if (j == 1)//当j能够减到1时,说明该数一直除到1,都不能被整除,故为素数
{
count++;
sum += i;
printf("%6d", i);
}
if (count == 10)
{
printf("\n sum=%d\n", sum);
break;
}
}
return 0;
}法二:一维数组做函数传递参数(方法复杂不太推荐)#include <stdio.h>
#include <math.h>
int sum_prime(int a[]);
int prime(int n);
int main()
{
int i, a[10], sum;
sum = sum_prime(a);
for (i = 0; i < 10; i++)
printf("%6d", a[i]);
printf("\n sum=%d\n", sum);
return 0;
}
int sum_prime(int a[])
{
int i, j = 499, sum = 0;
for (i = 0; i < 10; )
{
if (prime(j))//prime函数,当为素数时返回1
{
sum = sum + j;
a[i] = j;
i++;//控制返回的素数是前10个
}
j--;
}
return sum;
}
int prime(int n)
{
int i, k;
k = (int)sqrt((double)n);
for (i = 2; i <= k; i++)
{
if (n % i == 0)
return 0;
}
if (i >= k + 1)//一直用i除到最大都还不能被整除,所以为素数
return 1;
}
}

我要回帖

更多关于 c语言中m~n内所有的素数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信