您的位置:首页 > 编程语言 > C语言/C++

C语言求出给出数据的素数的和以及素数的个数

2015-12-05 09:25 281 查看
这个只是对动态数组的应用

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(void)
{
bool Prime(int num);
int *pBuf,n,t=1,h=0,g=0;
scanf("%d",&n);
pBuf=(int*)malloc(n*sizeof(int));
for(int i=0;i<n;i++)
scanf("%d",&pBuf[i]);
puts("=========================");
for(int j=0;j<n;j++)
{
if(Prime(pBuf[j]))
{
g+=1;
h+=pBuf[j];
}
}
printf("全部素数和:%d\n",h);
printf("素数的个数:%d\n",g);
system("pause");
return 0;
}
bool Prime(int num)
{
/* 特殊情况处理 */
if(num==1)
return false;
if(num==2)
return true;
//除了2以外,能被2整除的都不可能是素数
if(num%2==0)
return false;
//没有特殊情况了 正常判断
for(int s=3;s*s<num;s+=2)
if(num%s==0)
return false;
return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: