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

    Problem Description
    有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b。若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c。
     
    Input
    第一行输入一个n,表示有n组测试数据,接下来的n行,每行输入两个正整数a,b。
     
    Output
    输出对应的c,每组测试数据占一行。
     
    Sample Input
    2 6 2 12 4
    Sample Output
    4 8
     
    思路:  1 gcd求公约数,
           2 既然  ”a和c的最大公约数为b“  可以从2b,3b,4b,......一个一个验证
    #include<cstdio>
    int gcd(int a,int b)//求a与b的最大公约数
    {
         if( a%b==0 ) return b;
         else return gcd( b, a%b );
    }
    int main()
    {
        int n, a, b;
        scanf("%d", &n);
        while( n-- )
        {
             int i;
             scanf("%d%d", &a, &b); 
             for(i=b+b; ; i=i+b)//从2b开始试真正的c(确保c!=a,这一步不加也正确)
            {  
                 if( gcd(i,a)==b && i!=a )
    { printf(
    "%d ",i); break; } } } return 0;
    }
     
     
     
     
  • 相关阅读:
    数据库默认隔离级别
    openldap安装
    new word
    ldap概念
    Oracle 计算函数
    informix 学习资料收集
    convert to groovy project
    ldap资料
    hibernate session
    IE BUG相关文章集合
  • 原文地址:https://www.cnblogs.com/123tang/p/5689759.html
Copyright © 2011-2022 走看看