#include<stdio.h>
#include<string.h>
#define MAXSIZE 1001
int prime[MAXSIZE];//将全部素数储存在一个数组里面
void Prime()
{
memset(prime, 0, sizeof(prime));
for (int i = 2; i < MAXSIZE; i++)//1不是素数跳过
{
if (prime[i])
{
continue;
}
else
{
for (int j = i*i; j < MAXSIZE; j += i)
{
prime[j] = 1;//只要不是素数就修改值为1
}
}
}
}
int main()
{
int N, i, M, sum, x;
scanf("%d", &N);
Prime();
prime[1] = 1;
prime[0] = 1;
//N组测试数据
while (N--){
sum = 0;
//M个数据
scanf("%d", &M);
for (i = 0; i < M; i++){
scanf("%d", &x);
//素数相加
if (prime[x] == 0)
{
sum += x;
}
}
printf("%d\n", sum);
}
return 0;
}
南阳理工学院oj第22题素数求和问题
最新推荐文章于 2019-02-15 20:30:48 发布