1. 程式人生 > >C語言經典例子,求兩個數的最大公約數和最小公倍數

C語言經典例子,求兩個數的最大公約數和最小公倍數

求兩個數的最大公約數,我們首先可以想到輾轉相除法,即用最大的數除以小的數,得到以後的餘數,再用上次較小的數繼續除以餘數,直到餘數為0.最後剩下的最小數即為最大公約數。

例如,16,10,求最大公約數。

           16%10=4(餘數)

           10%4=2

            4%2=0(餘數為0,所以此時2就是最大公約數)

最小公倍數就是兩個數的乘積除以最大公約數;

#include<stdio.h>
#include<stdlib.h>

int main()
{
	int max = 0;
	int min = 0;
	int temp = 0;
	int mul = 0;
	printf("Please enter two num:\n");
	scanf("%d %d", &max, &min);
	mul = max * min;
	if (max < min)//找到最大的數
	{
		temp = max;
		max = min;
		min = temp;
	}
	while (max % min != 0)//輾轉相除
	{
		temp = min;
		min = max % min;
		max = temp;
	}
	printf("最大公倍數:%d\n", min);
	printf("最小公倍數:%d\n", mul/min);
	system("pause");
	return 0;
}




相關推薦

C語言經典例子個數大公約數小公倍數

求兩個數的最大公約數,我們首先可以想到輾轉相除法,即用最大的數除以小的數,得到以後的餘數,再用上次較小的數繼續除以餘數,直到餘數為0.最後剩下的最小數即為最大公約數。 例如,16,10,求最大公約數。            16%10=4(餘數)            10

C語言例項—輸入個正整數mn大公約數小公倍數(gcc 編譯)。

1.輾轉相除法 輾轉相除法是古希臘求兩個正整數的最大公約數的,也叫歐幾里德演算法,其方法是用較大的數除以較小的數,上面較小的除數和得出的餘數構成新的一對數,繼續做上面的除法,直到出現能夠整除的兩個數,其中較小的數(即除數)就是最大公約數。以求288和123的最大公約數為例,操作如下: 288÷1

鍵入個數大公約數小公倍數----初學c

#include <stdio.h> void fun1(int *x,int *y); //將兩個數比較大小,使x>y void fun2(int *a,int *b); //輾轉反側法 void main() { /*定義變數*

C語言個數大公約數小公倍數

輾轉相除法, 又名歐幾里德演算法(Euclidean algorithm),是求最大公約數的一種方法。它的具體做法是:用較小數除較大數,再用出現的餘數(第一餘數)去除除數,再用出現的餘數(第二餘數)去除第一餘數,如此反覆,直到最後餘數是0為止。如果是求兩個數的最

c語言:輸入個正整數mn大公約數小公倍數

輸入兩個正整數m和n,求其最大公約數和最小公倍數。解:程式:#include <stdio.h>int main(){int num1, num2, t,p;printf("請輸入兩個正整數

[c語言] 呼叫函式實現個數中的大值

#include<stdio.h>int max(int x, int y){int max = 0;if (x < y){max = y;}else{max = x;}return

C語言——個數大公約數小公倍數

求兩個數的最大公約數的常用方法:※“輾轉相除法”,又名歐幾里得演算法。基本方法如下:設兩數為a和b(a>b),用a除以b,得a÷b=q......r,若r=0 ,則最大公約數為b;若r≠0 ,則再用b÷r,得b÷r=q......r',若r'=0,則最大公約數為r',若

C語言例項12——輸入個正整數mn大公約數小公倍數

題目:輸入兩個正整數m和n,求其最大公約數和最小公倍數。 //程式分析:利用輾除法。 #include<stdio.h> int main(){ int a,b,num1,num2,te

C語言:寫個函式分別大公約數小公倍數

題目:寫兩個函式,分別求兩個整數的最大公約數和最小公倍數,用主函式呼叫這個兩個函式,並輸出結果。兩個整數由鍵盤輸入 分析:求最大公約數,需要用到輾轉相除法: 輾轉相除法:設兩數為a、b(a>b

C語言如何個數大公約數小公倍數

  void Gyueshu(int max, int min) { int i = 0, temp = 0; if (max < min) //判斷並交換兩個數的大小 { temp = max; max = min; min =

c語言個數大公約數小公倍數

#include<stdio.h> int main() { int a,b,t,r; printf("請輸入兩個數字:\n"); scanf("%d %d",&a,&b); if(a<b) {t=b

C語言分別個整數的大公約數小公倍數

#include <stdlib.h> #include <math.h> #include <stdio.h> //遞迴演算法 //歐幾里得演算法 void GCD(int a, int b) {     int temp;

c++中個數大公約數小公倍數(輾轉相除法)

輸入兩個正整數m和n,求其最大公約數和最小公倍數 #include "stdafx.h" #include<iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) {

經典100題】 題目16 個數大公約數小公倍數

題目 求兩個數的最大公約數和最小公倍數。 最大公約數:指兩個或多個整數共有約數中最大的一個 最小公倍數:指兩個或多個整數共有倍數中最小的一個 說明:自己沒有搞清楚最大公約數和最小公倍數的定義,結果走了不少彎路,下面的解法是一種比較簡單但是效率的不高的解法。可以參考“輾除法”,在後續會

C#基礎:個數大公約數小公倍數

            int number1 = 0;             int  number2 = 0;             Console.WriteLine("請輸入兩個整數:");             number1 = int.Parse(Console.ReadLine()

輸入個正整數mn大公約數小公倍數 C/C++

題目:輸入兩個正整數m和n,求其最大公約數和最小公倍數。 1.程式分析:利用輾除法。 2.程式原始碼: #include <stdio.h> int main() { int a,b,num1,num2,temp; printf("請輸入2個正整數:\

c++)輸入個正整數mn大公約數小公倍數

#include<iostream> using namespace std; int main() {int m,n,i,j,a;cin>>m>>n;j=m*n;

C/C++程式設計題之個數大公約數小公倍數

求兩個數的最大公約數和最小公倍數 方法:最大公約數使用輾轉相除法求,最小公倍數等於兩個數的乘積/最大公約數 輾轉相除法的原理:用輾轉相除法求幾個數的最大公約數,先求出其中任意兩個數的最大公約數,再

C語言之函式呼叫07—4個數大公約數小公倍數

//函式呼叫 /* ========================================================== 題目:求4個數的最大公約數和最小公倍數。 ===============================================