C语言实现:计算1到100所有素数之和
求1到100以内所有素数之和(c语言)
从1到100的所有素数之和曾被称为素数。
大于1的正整数如果不能被除1和它本身以外的其他正整数划分,则称为素数。
1不是素数。
2+3+5+7+11+13+17+19+23+29+31+37+41+43+47+53+59+61+67+71+73+79+83+89+97=1060.100所有素数的和是1060.
#include“stdafx.h”
#include
#include
#include<math.h>
#include
#include
#include
intisPrime(intn)//求素数是最经典的算法代码。
{
intj;
for(j=2;j*j<=n;j++)
if(n%j==0)
return0;
return1;
intmain(void)
{
inti,sum=0;
for(i=2;i<100>
if(isPrime(i))
{
sum+=i;
printf("%d\n",i);
printf("%d\n",sum);
getchar();
system("暂停");
return0;
操作输出:
扩展信息:使用include:
#include命令是一种预处理命令。
预处理命令可以在指定位置插入其他源代码内容;它可以指定它仅在某些条件下启用。
一段编译好的程序代码;您可以定义具有类似于标识符的功能的宏。
在编译期间,预处理器会将宏替换为其他文本。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到当的预处理器命令位置。
指定要插入的头文件有两种方法:
1.#include<文件名>
2.#include“文件名”
。100以内的素数之和用C语言怎么编写程序?
这个问题可以分两部分解决:一是确定素数,二是实现累加和输出。
1.确定素数。
确定素数有两种常用方法。
1是根据数学定义来判断的,即h.基于所有因素的确定。
如果除了1和它本身之外还有其他因数,那么它就不是素数。
代码如下:
不大于平方根的值就足够了。
其中sqrt是平方根函数。
if(n%i==0)返回0;//只要有一个因子满足条件,就不是素数,返回0。
返回1;//这个数是质数。
该算法可以应用于任何情况。
2个素数筛。
该算法的原理是所有素数的倍数都不是素数。
首先假设所有数都是素数,然后去掉已知素数的倍数,最后得到一定范围内的所有素数。
代码如下:
voidmake_map(void){inti,j;map[1]=1;//1不是素数。
for(i=2;i<100 for(j=i*2;j j+=i)map[j] xss=clean>返回地图[n]==0;//如果map[n]为0,则n为素数
该算法的存储空间开销与数据量成正比,比较大,不适用。
但在数据量较小、素性判断频繁的情况下,具有较高的时间成本优势。
2.
这部分可以放在main函数中。
您可以调用上面任意一个素数判断函数。
最终产出金额=1060