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