题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5150
题目意思:就是直接求素数。
不过 n = 1,也属于答案范围!!只能说,一失足成千古恨啊~~~~~
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std; const int maxn = + ;
int prime[maxn]; bool is_prime(int x)
{
// if (x == 1) // 太多手了,不能先入为主啊
// return false; // 被人 hack 的罪魁祸首
if (x == )
return true;
for (int i = ; i * i <= x; i++)
{
if (x % i == )
return false;
}
return true;
} int main()
{
memset(prime, , sizeof(prime));
for (int i = ; i <= maxn; i++)
{
if (is_prime(i))
prime[i] = ;
} int n, data;
while(scanf("%d", &n) != EOF)
{
int sum = ;
for (int i = ; i < n; i++)
{
scanf("%d", &data);
if (prime[data])
sum += data;
}
printf("%d\n", sum);
}
return ;
}