C语言 输入一个正整数N和N个正整数,统计其中素数的和。

兄弟姐妹哪位知道,C语言 输入一个正整数N和N个正整数,统计其中素数的和。
最新回答
明晨紫月

2025-03-28 09:12:36

#include<stdio.h>
int IsPrime(int n)
{
int i;
if(n==1)
return 0;
for(i=2;i<=n/2;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
int main()
{
int i,N,sum=0,data[100];
scanf("%d",&N);
for(i=0;i<N;i++)
{
scanf("%d",&data[i]);
if(IsPrime(data[i]))
{
sum+=data[i];
printf("%d ",data[i]);
}
}
printf("s=%d\n",sum);
return 0;
}
假扮的天使

2025-03-28 04:15:01

C语言实现如下:

#include <stdio.h>
void main()
{
int n,i,j,max=0,a[100],sum=0;
int p[10000]={0};
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if (a[i]>max) max=a[i];
}
for(i=2;i<=max;i++)
{
if (p[i]) continue;
j=2;
while (i*j<=max) 
{
p[i*j]=1;
j++;
}
}   //用筛选法筛选出素数。
p[0]=1;
p[1]=1;
for(i=0;i<n;i++)
if(!p[a[i]])
{
printf("%d ",a[i]);
sum+=a[i];
}  //判断该数是否为输出,是则输出。
printf("s=%d\n",sum);//输出素数的和。
}

样例输入:

5

10 15 13 43 12

样例输出:

13 43 s=56