溫馨提示×

c語言怎么判斷區(qū)間內(nèi)素數(shù)的個數(shù)

小億
185
2023-11-23 03:30:49
欄目: 編程語言

要判斷區(qū)間內(nèi)素數(shù)的個數(shù),可以采用以下方法:

  1. 編寫一個函數(shù)來判斷一個數(shù)是否為素數(shù)。素數(shù)是指只能被1和自身整除的數(shù),因此可以從2開始,逐個判斷該數(shù)是否能被2到該數(shù)的平方根之間的任何數(shù)整除。
#include <math.h>

int isPrime(int num) {
    if (num <= 1) {
        return 0;
    }
    
    int limit = sqrt(num);
    for (int i = 2; i <= limit; i++) {
        if (num % i == 0) {
            return 0;
        }
    }
    
    return 1;
}
  1. 在主函數(shù)中,獲取用戶輸入的區(qū)間上下界。
#include <stdio.h>

int main() {
    int lower, upper;
    printf("請輸入?yún)^(qū)間上下界:");
    scanf("%d %d", &lower, &upper);
  1. 使用循環(huán)遍歷區(qū)間內(nèi)的所有數(shù),對每個數(shù)調(diào)用判斷素數(shù)的函數(shù)。如果該數(shù)是素數(shù),則計數(shù)器加1。
    int count = 0;
    for (int i = lower; i <= upper; i++) {
        if (isPrime(i)) {
            count++;
        }
    }
  1. 輸出最終的素數(shù)個數(shù)。
    printf("區(qū)間內(nèi)素數(shù)的個數(shù)為:%d\n", count);
    
    return 0;
}

完整代碼如下:

#include <stdio.h>
#include <math.h>

int isPrime(int num) {
    if (num <= 1) {
        return 0;
    }
    
    int limit = sqrt(num);
    for (int i = 2; i <= limit; i++) {
        if (num % i == 0) {
            return 0;
        }
    }
    
    return 1;
}

int main() {
    int lower, upper;
    printf("請輸入?yún)^(qū)間上下界:");
    scanf("%d %d", &lower, &upper);
    
    int count = 0;
    for (int i = lower; i <= upper; i++) {
        if (isPrime(i)) {
            count++;
        }
    }
    
    printf("區(qū)間內(nèi)素數(shù)的個數(shù)為:%d\n", count);
    
    return 0;
}

通過運行該程序,用戶可以輸入?yún)^(qū)間的上下界,然后程序會輸出該區(qū)間內(nèi)的素數(shù)個數(shù)。

0