1. 程式人生 > >輾轉相除法求兩個數的最大公約數

輾轉相除法求兩個數的最大公約數

輾轉法相除:先將大數除以小數,如果整除,小數就是它們的最大公因數,如果不能整除,就記下餘數,用前面的除數(就是小數),除以這個餘數,以下類推,每一次都用前一個除式的除數除以自己的餘數,直到有一個除法能整除,這時,最後能整除的除式的除數,就是這兩個數的最大公因數。

 

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

int divisor(int m, int n) 
{
    int r;
    for(; r = m%n; m = n, n = r);
    return n;
}
int main()
{
    int a, b;
    scanf("%d%d", &a, &b);
    printf("%d和%d的最大公約數為%d\n", a, b,divisor(a,b));
    system("pause");
    return 0;
}