题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5150
题目意思:就是直接求素数。
不过 n = 1,也属于答案范围!!只能说,一失足成千古恨啊~~~~~
1 #include2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int maxn = 1000 + 5; 8 int prime[maxn]; 9 10 bool is_prime(int x)11 { 12 // if (x == 1) // 太多手了,不能先入为主啊13 // return false; // 被人 hack 的罪魁祸首14 if (x == 2)15 return true;16 for (int i = 2; i * i <= x; i++)17 {18 if (x % i == 0)19 return false;20 }21 return true;22 }23 24 int main()25 {26 memset(prime, 0, sizeof(prime));27 for (int i = 1; i <= maxn; i++)28 {29 if (is_prime(i))30 prime[i] = 1;31 }32 33 int n, data;34 while(scanf("%d", &n) != EOF)35 {36 int sum = 0;37 for (int i = 0; i < n; i++)38 {39 scanf("%d", &data);40 if (prime[data])41 sum += data;42 }43 printf("%d\n", sum);44 }45 return 0;46 }