zoukankan      html  css  js  c++  java
  • HDU2504 又见GCD

    问题链接HDU2504 又见GCD入门练习题,用C语言编写程序。

    问题简述:参见上述链接。

    问题分析根据题意,输入a和b求c,gcd(a,c)=b,cb,求最小的c。

    因为gcd(a,c)=b,所以b|c,即c=kb,k为整数。所以从c=2b开始试探,找出满足gcd(a,c)=b的最小的kb。

    程序说明:(略)。

    AC的C语言程序如下:

    /* HDU2504 又见GCD */
    
    #include <stdio.h>
    
    /* 迭代法(递推法):欧几里得算法,计算最大公约数 */
    int gcd(int m, int n)
    {
        while(m>0)
        {
            int c = n % m;
            n = m;
            m = c;
        }
        return n;
    }
    
    int main(void)
    {
        int n, a, b, c;
    
        scanf("%d", &n);
        while(n--) {
            // 读入数据
            scanf("%d%d", &a, &b);
    
            // 试探法:从c=2b开始,满足c=kb,计算c
            c = b + b;
            while(gcd(a, c) != b)
                c += b;
    
            // 输出结果
            printf("%d
    ", c);
        }
    
        return 0;
    }


  • 相关阅读:
    linux安装软件的几种方式
    linux目录
    linux远程连接
    linux分区
    linux特殊符号
    sed
    rest_framework认证流程
    一些面试题目
    算法之二分法
    算法之动态规划
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564567.html
Copyright © 2011-2022 走看看