求a和b的最大公约数 gcd(a ,b)= gcd(b, a%b) 例:gcd(36,24) =gcd(24, 12 ) =gcd(12, 0 )

来源:互联网 发布:linux# 编辑:程序博客网 时间:2024/05/21 19:07

求a和b的最大公约数
gcd(a ,b)= gcd(b, a%b)
例:gcd(36,24) =gcd(24, 12 ) =gcd(12, 0 )

//main.c//author:yangyang#include "stdafx.h"#define A 65#define B 182int min(int a, int b);int max(int a, int b);int main(){    int yushu;    int a[256];    int *p = a;    int num = 0;     int maxnum=0;    for (int i = 1; i <= min(A,B); i++)    {        yushu = min(A, B) / i;        if (yushu*i == min(A, B))        {            int yushu2 = max(A, B) / yushu;            if (yushu2*yushu == max(A, B))            {                *p = yushu;                p++;                //p[i] = yushu;                num++;            }           }    }    for (int i = 1; i <= num; i++)    {        if (maxnum < *p--)            maxnum = *p;    }    printf("%d%d的最大公约数为%d\n", A, B, maxnum);    return 0;}int min(int a, int b){    return a < b ? a:b;}int max(int a, int b){    return a > b ? a : b;}
1 0
原创粉丝点击