首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ 找出 1-100 間所有孿生素數完整代碼

     編輯:程式設計綜合問答

孿生素數定義

相差為 2 的兩個素數,如 (3,5)、(11,13)。

完整可運行代碼

#include 
#include 
using namespace std;

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

int main() {
    int prevPrime = 2;
    for (int p = 3; p <= 100; p += 2) { // 偶數除2外非素數
        if (isPrime(p)) {
            if (p - prevPrime == 2) {
                cout << "(" << prevPrime << ", " << p << ")" << endl;
            }
            prevPrime = p;
        }
    }
    return 0;
}

運行結果

(3, 5)
(5, 7)
(11, 13)
(17, 19)
(29, 31)
(41, 43)
(59, 61)
(71, 73)

關鍵點

  • 素數判斷優化:只需試除到 sqrt(n),跳過偶數。
  • 遍歷時記錄上一個素數,差值為 2 即為孿生素數對。
  • 適合大一入門練習,邏輯清晰、代碼簡潔。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved