#include
#include
#define ARR_LEN 255 /*数组长度上限*/
/* 试除法判断素数 */
/* 大于1的自然数num,若其不能被2~num^1/2(num的平方根)之间的任一自然数整除,则其为素数 */
/* num是素数返回1,否则返回0 */
int isPrime (int num) {
int i;
if (num <= 1) /* 素数必须是大于1的自然数 */
return 0;
if (num%2==0 && num!=2) /* 除2之外的偶数显然不是素数 */
return 0;
for (i=2; i*i<=num; i++)
if (num%i == 0)
return 0;
return 1;
}
int main (void) {
int arr[ARR_LEN] = {3,5,1,7,4,9,6,8,10,4};
int len = 10;
int primeSum = 0, primeCnt = 0;
int i;
printf ("素数:");
for (i=0; i if (isPrime (arr[i])) {
printf ("%d ", arr[i]);
primeSum += arr[i];
primeCnt++;
}
}
putchar ('\n');
printf ("素数累加和:%d\n素数个数:%d\n", primeSum, primeCnt);
getch (); /*屏幕暂留*/
return 0;
}