本博客是c语言实现的求1-20素数的个数并求和,当然,这个1与20也可以改成其他数进行使用
。这个代码中我将素数(prime)的判断封装成函数is-prime,素数进行判断。
将遍历得到的数传入下方代码块对该数进行判断,使用一个for循环,对传入进行判断的数的小于他的数进行遍历并判断是否能把他整除,并返回1/0作为判断的结果。
int is_prime(int x)
{ int n=0;
for(n=2;n<x;n++)
{
if(x%n==0)
return 0;
}
return 1;
}
主函数内遍历得到需要判断的数,并传入函数is-prime对其进行判断并将结果传入判断函数。使用sum进行计数,对得到一次素数便增1。
for(i=2;i<=20;i++)
{
if(is_prime(i))
{
printf("%d ",i);
sum=sum+i;
}
}
printf("\n总和为%d",sum);
整个代码实现如下
/*计算1-20素数个数并求和*/
//如果是素数函数返回1,否则返回0
//改进方法:将除数遍历到被除数的开平方,以减小时间复杂度
int is_prime(int x)
{ int n=0;
for(n=2;n<x;n++)
{
if(x%n==0)
return 0;
}
return 1;
}
#include<stdio.h>
int main()
{
int i=0;
int sum=0;
for(i=2;i<=20;i++)
{
if(is_prime(i))
{
printf("%d ",i);
sum=sum+i;
}
}
printf("\n总和为%d",sum);
return 0;
}