C语言求最大公约数和最小公倍数

xiaoxiao2021-02-28  148

C语言求最大公约数和最小公倍数

方法一: 辗转相除法 有两整数a和b: ① a%b得余数c ② 若c=0,则b即为两数的最大公约数 ③ 若c≠0,则a=b,b=c,再回去执行① 例如求27和15的最大公约数过程为: 27÷15 余12  15÷12余3  12÷3余0 因此,3即为最大公约数

#include <stdio.h>

int main()

{

    int n,m;

    while(scanf("%d %d",&n,&m)!=EOF)

   {

        int c = n;

        while(m != 0)

    {

            c = n%m;;             n = m;             m = c;     }         printf("%d\n",n);     } }

方法二: 调用函数

#include <bits/stdc++.h> using namespace std; int main() {     int N, M ,yueshu,gongbeishu;     while(~scanf("%d %d", &N, &M))     {         yueshu=__gcd(N, M);         gongbeishu=(N*M)/yueshu;         printf("%d %d\n", yueshu,gongbeishu);     }          return 0; }

转载请注明原文地址: https://www.6miu.com/read-21773.html

最新回复(0)