标签:
描述
现在给你N个数(0<N<1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求和。
3 5 1 2 3 4 5 8 11 12 13 14 15 16 17 18 10 21 22 23 24 25 26 27 28 29 30
样例输出
10 41 52
测试代码
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <assert.h> 4 5 int isPrime(int num) 6 { 7 int j; 8 if (num == 2) 9 { 10 return num; 11 } 12 if (num % 2 == 0 || num < 2) 13 { 14 return 0; 15 } 16 for (j = 3; j * j <= num; j += 2) 17 { 18 if (num % j == 0) 19 { 20 return 0; 21 } 22 } 23 return num; 24 } 25 26 int main() 27 { 28 int n, i, j, m, sum; 29 int *a; 30 scanf("%d", &n); 31 for (i = 0; i < n; i++) 32 { 33 sum = 0; 34 scanf("%d", &m); 35 a = (int *)calloc(m, sizeof(int)); 36 assert(a != NULL); 37 for (j = 0; j < m; j++) 38 { 39 scanf("%d", a + j); 40 sum += isPrime(a[j]); 41 } 42 printf("%d\n",sum); 43 free(a); 44 } 45 return 0; 46 }
标签:
原文地址:http://www.cnblogs.com/maxin/p/5473633.html