要求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
。