在範圍 [L, R] 內所有可能的互質的不同元素對?
這裡我們將看到如何計算範圍內互質對的數量,其中一個數字不會出現在多個對中。
在討論邏輯之前,讓我們看看什麼是互質數?互質數是指只有1這個正整數因子的數字。換句話說,我們可以說這兩個數的最大公約數是1。
這裡我們提供上下限。如果上下限是1和6,那麼有三對:(1, 2)、(3, 4)和(5, 6)
解決這個問題的方法是這樣的:如果數字是連續的,它們總是互質的。所以計數將是 (R – L + 1)/2。如果 (R – L + 1) 是奇數,那麼將有一個數字剩下,不會放在任何一對中;如果是偶數,那麼所有數字都會成對。
演算法
countCoPrimePairs(L, R)
Begin return (R – L + 1)/2 End
示例
#include <iostream>
using namespace std;
int countCoPrimePairs(int L, int R) {
return (R - L + 1)/2;
}
main() {
int l = 1, r = 6;
cout << "Number of co-prime pairs: " << countCoPrimePairs(l, r);
}輸出
Number of co-prime pairs: 3
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP