CCF NOI 1028 判斷互質 :利用歐幾里得演算法最大公因數
題目描述
輸入兩個正整數m和n,判斷m和n是否互質(即最大公約數為1),是則輸出Yes,否則輸出No。
輸入:輸入兩個整數m和n,中間用空格隔開。
輸出:如互質輸出Yes,否則輸出No。
樣例輸入:36 56
樣例輸出:No
資料範圍限制:1<=n,m<2^31
題目分析:
1、m,n取值範圍都極大,無法通過暴力計算
2、判斷互質的標準為最大公約數是否為1
具體程式碼:
1、常規輸入m,n
int m, n;
cin >> m >> n;
2、歐幾里得演算法求最大公因數max
int a = m, b = n, ok = 1, max, r, q;
while (ok) {
r = a % b; //餘數
q = a / b; //商
if (!r) { //餘數為零時
max = b; //最大公約數為除數
ok = 0; //跳出迴圈
}
else { //繼續運算
a = b; //令新被除數為舊除數
b = r; //令新除數為舊餘數
}
}
3、判斷是否互質輸出
if (max == 1)cout << "Yes";
else cout << "No";
C++滿分完整程式碼如下:
#include<iostream>
using namespace std;
int main() {
int m, n;
cin >> m >> n;
int a = m, b = n, ok = 1, max, r, q;
while (ok) {
r = a % b;
q = a / b;
if (!r) {
max = b;
ok = 0;
}
else {
a = b;
b = r;
}
}
if (max == 1)cout << "Yes";
else cout << "No";
return 0;
}
相關文章
- 求最大公公約數(最大公因數)—— 歐幾里得演算法演算法
- 尋找最大公因數(歐幾里得演算法)--C語言描述演算法C語言
- 【質數判斷】給定兩個數,判斷這兩個數是否互質?
- 最大公約數與歐幾里得演算法演算法
- C語言判斷素數,判斷質素演算法C語言演算法
- php判斷二個數最大公約數PHP
- 質數判斷、質因子分解、質數篩
- Python演算法實現質數(素數)判斷Python演算法
- JavaScript判斷數字是否是質數JavaScript
- js之普通/高效判斷質數JS
- 使用SQL判斷一個數是否質數SQL
- 判斷一個數是否為質數(程式碼)
- 演算法學習記錄02-判斷輸入數字是不是質數演算法
- Python 判斷質數的另一種方法Python
- 求最大質因數
- 歐幾里得演算法與擴充套件歐幾里得演算法演算法套件
- 最安全的型別判斷型別
- 階乘質因數分解
- 最大公約數的演算法演算法
- java演算法 求最大公約數Java演算法
- 【演算法拾遺】最大公約數演算法
- 如何利用jQuery判斷指定元素是否存在jQuery
- 變數,運算子,if判斷變數
- JQuery 判斷 正整數jQuery
- java判斷迴文數Java
- JavaScript判斷整數或者小數JavaScript
- JavaScript判斷數字正負數JavaScript
- 萬能歐幾里得演算法演算法
- 歐幾里得演算法與 EX演算法
- nginx判斷路徑是否含有某個引數做判斷Nginx
- 最大公約數與最小公倍數演算法演算法
- 利用位運算判斷陣列中是否有重複的數字陣列
- 如何判斷一個網站的質量?網站
- ACM之判斷迴文數ACM
- 如何判斷變數型別變數型別
- 演算法之複雜度判斷演算法複雜度
- 如何判斷外鏈質量:基本方法詳解
- js判斷引數是否為非數字JS