这个只是对动态数组的应用
#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;
}