1. 程式人生 > >【C++筆記】 判斷兩個數互質(做大公約數為1)

【C++筆記】 判斷兩個數互質(做大公約數為1)

定理:gcd(a,b) = gcd(b,a mod b)  // a和b的最大公因數,a和b的大小沒影響。

①0和任意自然數的最大公約數就是那個自然數。

②互質指最大公約數等於1的兩個自然數。

③1和任意數互質。

判斷是否互質程式碼如下:(如果求最大公因數,輸出b即可)

bool isrp(int a, int b)
{
	if(a==1||b==1)     // 兩個正整數中,只有其中一個數值為1,兩個正整數為互質數
		return true;
	while(1)
    {          // 求出兩個正整數的最大公約數
		int t = a%b;
		if(t == 0) 
        {
            break;
        }
		else
        {
			a = b;
			b = t;
		}
	}
	if(b>1)	return false;// 如果最大公約數大於1,表示兩個正整數不互質
	else return true;	// 如果最大公約數等於1,表示兩個正整數互質
}

相關推薦

C++筆記 判斷個數大公約數1

定理:gcd(a,b) = gcd(b,a mod b)  // a和b的最大公因數,a和b的大小沒影響。 ①0和任意自然數的最大公約數就是那個自然數。 ②互質指最大公約數等於1的兩個自然數。 ③

C語言判斷個數是不是迴文數

 所謂迴文數,就是說一個數字從左邊讀和從右邊讀的結果是一模一樣的。 首先,我們來判斷一下一個數是否為迴文數: #define _CRT_SECURE_NO_WARNINGS 1 #include&

C語言互換個數的值的三種方法

        我在第一次C語言學習的過程中,對於C語言的認識不夠深刻,我覺得這種解法已經非常厲害。畢竟能將簡單的兩個數的交換用計算機的邏輯編寫出來,並實現正確執行......int main() { int num1 = 10; int num2 = 20;

C語言個數的最大公約數

思路: 輾轉相除法:以小的數除大數,所得的是整數,那這個數就是最大公約數,不然就用餘數來除剛才的除數,直到得到整數,這時作為除數的就是最大公約數。 #include<stdio.h>

c語言判斷個數n能否同時被3和5整除

// 判斷一個數n能否同時被3和5整除 #include <stdio.h> int main() { int n; printf("請輸入一個整數:"); scanf("%d",&n); if( n % 3 == 0 &&

C語言判斷個數的奇偶位操作

//判斷一個數的奇偶 #include <stdio.h> int is_signal(int num) { if (num & 1) return 1; else r

C語言判斷個數是否2的n次方

//判斷一個數是否為2的n次方 #include <stdio.h> int is_two_n(int num) { if ((num&(num - 1))) //去掉一個1

程設作業遞迴判斷個數

giving an integer N (2 <= N <= 20) and a real number M (0.5 < M <= 1), output all proper fractions whose numerator is l

程式設計筆記執行緒池實現原始碼從POCO中剝離出來

原始碼下載:https://download.csdn.net/download/fzuim/10625204 CThreadPool類 /***************************************************************

C語言檔案常用讀寫操作含讀取學生資訊示例

C檔案概述 檔案是指一組相關資料的有序集合。這個資料集有一個名稱,叫做檔名。實際上我們在C語言程式設計中已經多次使用了檔案。例如源程式檔案(.c)、目標檔案(.0bj)、可執行檔案(.exe)、庫檔

演算法學習陣列求差數Java,三重境界

【題目描述】:兩個陣列,一個A陣列200個,,另一個B陣列199個,兩個陣列亂序,但是差一個數,,,找出差的是那個數。 一。境界1(60分) 【1】遍歷A陣列,對每個數執行【2】操作 【2】遍歷B陣列對比是否存在此數。 參考程式碼如下: /**

C語言推斷一個數是否2的n次方

post data- popu scanf scan ng- 輸入 ont print //推斷一個數是否為2的n次方 #include <stdio.h> int is_two_n(int num) { if ((num&(num - 1))

C++筆記編寫類string的建構函式、解構函式和賦值函式

#include<iostream> using namespace std; class String { public: String(const char *str=NULL); //普通建構函式 String(const Stri

C++筆記Windows通過命令列編譯執行c程式 轉載

1.準備 一臺具備c開發環境的Windows。 驗證方式,命令列輸入gcc -v,檢視是否輸出版本資訊。 gcc -v 1 2.寫程式 在E盤建一個資料夾C,在裡面建立一個Hello.c檔案,副檔名是c,內容如下: #include <stdio.h>

C#基礎判斷字串是否

String.Empty和string=””是一樣的,同樣都是需要佔用記憶體空間<空字串>;但優先推薦使用string.Empty Console.WriteLine("".Equals(string.Empty));//結果:true 還一種高效判斷方法(s

C語言輸入一個整數,輸出該數二進位制表示中1個數三種方法

輸入一個整數,輸出該數二進位制表示中1的個數。如輸入32,輸出1.程式碼實現:方法1:與運算#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; int FindOne

c語言將一個數的二進位制序列逆序,然後輸出逆序之後的二進位制序,所對應的數

<pre name="code" class="cpp">// 將一個數的二進位制序列逆序,然後輸出逆序之後的二進位制序,所對應的數 #include <stdio.h> // 從原數拿出最低位,放到mid中,mid左移,原數右移 int r

C語言求一個數的二進位制位模式從左到右翻轉後對應的十進位制值。

用函式unsigned int reverse_bit(unsigned int value)實現想要的功能 value是我們想要求的值。 #include <stdio.h> #include <math.h> unsigned

C++筆記函式(筆記)

在標頭檔案中進行函式宣告 建議變數和函式應該在標頭檔案中宣告,在原始檔中定義。 使用引用避免拷貝 如果函式無須改變引用形參的值,最好將其宣告為常量引用。 // 比較兩個string物件的長度 bool isShorter(const string

C#基礎判斷字串是否空、判斷字元是否數字

一、判斷字串是否為空 String.Empty和string=””是一樣的,同樣都是需要佔用記憶體空間<空字串>;但優先推薦使用string.Empty Console.WriteLine("".Equals(string.Empty));//結果:true 還一種高效判斷方