要求n个数中素数的个数,可以按照以下步骤进行:
首先定义一个函数isPrime
,用于判断一个数是否为素数。判断方法可以从2开始,依次判断该数是否能被2到sqrt(n)之间的数整除,如果存在能整除的数,则该数不是素数;否则,该数是素数。
在主函数中,先读入一个整数n,表示接下来要输入n个数。
使用一个循环,读取n个数,将每个数都调用isPrime
函数进行判断。如果返回结果为真,则素数个数加1。
输出素数个数。
以下是代码示例:
#include <stdio.h>
#include <math.h>
int isPrime(int num) {
if (num <= 1) {
return 0;
}
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n, count = 0;
printf("请输入个数n:");
scanf("%d", &n);
printf("请输入%d个数:", n);
for (int i = 0; i < n; i++) {
int num;
scanf("%d", &num);
if (isPrime(num)) {
count++;
}
}
printf("素数个数:%d\n", count);
return 0;
}
注意:在上述代码中,我们使用了math.h
头文件中的sqrt函数,需要在编译时链接数学库,例如使用gcc
编译时可以加上-lm
选项:gcc -o prime prime.c -lm
。