51Nod1011 最大公約數GCD(C語言)
2個數A,B,中間用空格隔開。(1<= A,B <= 10^9)Output
輸出A與B的最大公約數。Input示例
30 105Output示例
15
C語言AC程式碼
#include<stdio.h>
int gcd(int a,int b)
{
return (b>0)?gcd(b,a%b):a;
}
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
printf("%d\n",gcd(a,b));
return 0;
}
最大公約數就是最大公因數,指兩個或多個整數中共有的因數中最大的。
利用輾轉相除法,一個數一直除另一個數,直到餘數為零,這個除數就是最大公約數。
相關推薦
51Nod1011 最大公約數GCD(C語言)
輸入2個正整數A,B,求A與B的最大公約數。 Input 2個數A,B,中間用空格隔開。(1<= A,B <= 10^9) Output 輸出A與B的最大公約數。 Input示例 30 105 Output示例 15 C語言AC程
Python程式碼筆記(1)輾轉相除法/歐幾里得演算法求最大公約數gcd(m,n)
歐幾里得演算法求最大公約數:輾轉相除法 具體做法:用較小數除較大數,再用出現的餘數(第一餘數)去除除數,再用出現的餘數(第二餘數)去除除數,如此反覆,直到最後餘數是0為止。如果是求兩個數的最大公約數,
51nod1011最大公約數GCD
公約數 lns tid vtp mef shuf gof smm wbs 1kke0j鼓捎衙誘式斂http://www.docin.com/app/user/userinfo?userid=178503685ddqkj5紉枚掛捶誹煩http://docstore.docin
FJUT3565 最大公約數之和(容斥)題解
題意:給n,m,求出 思路:題意為求出1~m所有數和n的gcd之和。顯然gcd為n的因數。我們都知道gcd(a,b)= c,那麼gcd(a/c,b/c)= 1。也就是說我們列舉n所有的因數k,然後去找1~m/k中和n/k互質的個數就是gcd為k的個數。這個直接容斥就行。 程式碼: #include
演算法7-15:迪傑斯特拉最短路徑演算法(c語言)
題目描述 在帶權有向圖G中,給定一個源點v,求從v到G中的其餘各頂點的最短路徑問題,叫做單源點的最短路徑問題。 在常用的單源點最短路徑演算法中,迪傑斯特拉演算法是最為常用的一種,是一種按照路徑長度遞增的次序產生最短路徑的演算法。 可將迪傑斯特拉演算法描述如下: 在本題中,讀入
PTA-找最長的字串(C語言)
本題要求編寫程式,針對輸入的N個字串,輸出其中最長的字串。 輸入格式: 輸入第一行給出正整數N;隨後N行,每行給出一個長度小於80的非空字串,其中不會出現換行符,空格,製表符。 輸出格式: 在一行中用以下格式輸出最長的字串: The longest is: 最長的字串 如果字串的
程式結構(例題:計算最大公約數gcd程式)
感覺c++的標頭檔案跟c有很大相似的地方,但是形式不一樣,所以還是要記 而且我以前只是照著用,很多沒有搞懂意思 現在開始學習啦!(ps我去圖書館居然沒有找到c++ primer最新版的QAQ) #include <iostream> //in out stream
【C++解題報告】求最大公約數問題(輾轉相除法)
題目來源: 基礎班《函式、遞推、遞迴》,遞迴第5題。 描述: 總時間限制:1000ms 記憶體限制:65536KB 給定兩個正整數,求它們的最大公約數。 輸入: 輸入一行,包含兩個正整數(<1,000,000,000)。 輸出:
【51NOD-0】1011 最大公約數GCD
style lose gif lap blog %d 51nod ret display 【算法】歐幾裏德算法 #include<cstdio> int gcd(int a,int b) {return b==0?a:gcd(b,a%b);} int mai
52nod 1011 最大公約數GCD
brush str long long 水題 inpu iostream text lac ~~ 輸入2個正整數A,B,求A與B的最大公約數。 Input 2個數A,B,中間用空格隔開。(1<= A,B <= 10^9) Output 輸出
51nod 1011 最大公約數GCD
ytd ref style target sm2 lan shu fpm mys 9侔床乙撐6富f坎酌http://shufang.docin.com/vpe32249 寐4ree易V刮帕慘40http://www.docin.com/majo265 8氈誄20lb宋復
51nod 1040 最大公約數之和(歐拉函數)
wid con cst 都是 快的 .html lan inf log http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040 題意: 思路:最大公約數肯定也是在1~n這個範圍裏的,
【最全】經典排序算法(C語言)
排好序 而不是 lock wap 循環 而且 -s 關鍵字 void 本文章包括所有基本排序算法(和其中一些算法的改進算法): 直接插入排序、希爾排序、直接選擇排序、堆排序、冒泡排序、快速排序、歸並排序、基數排序。 算法復雜度比較: 算法分類 一、直接插入排序 一個
最大公約數GCD學習筆記
正整數 font 學習 nbsp pan -s ont 條件 最大公約數 引理 已知:k|a,k|b 求證:k|(m*a+n*b) 證明:∵ k|a ∴ 有p*k=a 同理可得q*k=b ∴ p*k*m=m*a,q*k*n=n*b ∴ k(p*m+q*n)=
【基礎】1011 最大公約數GCD
遞迴: #include<cstdio> int gcd(int a,int b){ if(b==0) return a; return gcd(b,a%b); } int main(){ long long a,b; scanf("%ld%ld",&a,
最大公約數gcd與最小公倍數lcm
最大公約數:gcd 最大公倍數:lcm gcd和lcm的性質:(我覺得主要是第三點性質) 歐幾里得演算法(輾轉相除法): 證明原理: 程式碼: int gcd(int a, int b) { if (b == 0) { return a; } return gcd(b, a
PTA-求n以內最大的k個素數以及它們的和(C語言)
輸入樣例1: 1000 10 輸出樣例1: 997+991+983+977+971+967+953+947+941+937=9664 輸入樣例2: 12 6 輸出樣例2: 11+7+5+3+2=28 #include <stdio.h> //判斷素數 int prime(i
LeetCode 3.無重複字元的最長子串 Longest Substring Without Repeating Characters(C語言)
題目描述: 給定一個字串,請你找出其中不含有重複字元的最長子串的長度。 示例 1: 輸入: “abcabcbb” 輸出: 3 解釋: 因為無重複字元的最長子串是 “abc”,所以其長度為 3。 示例 2: 輸入: “bbbbb” 輸出: 1 解釋
遺傳演算法求多項式最小值(C語言)
問題:在下面的程式中將要運用遺傳演算法對一個多項式求最小值: y=x^6-10x^5-26x^4+344x^3+193x^2-1846x-1680 要求在(-8,8)間尋找使表示式達到最小的x,誤差為0.001。 問題分析:
PTA練習:小於m的最大的10個素數(C語言)
給定一個整數m(50<m<20000),找出小於m的最大的10個素數。 輸入格式: 輸入在一行中給出一個正整數m(50<m<20000)。 輸出格式: 在一行中按遞減順序輸出10個滿足條件的素數,每個素數輸出佔6列。沒有其它任何附加格式和字元。