zoukankan      html  css  js  c++  java
  • HDU 2504 又见GCD

    又见GCD

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 10031    Accepted Submission(s): 4185


    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
     


    思路:
    18 3 15才对
    最小的数应该是b的倍数,但b的倍数和a的最大公约数不是b,所以c逐渐添加,直到和a的最大公约数等于b。

    #include<cstdio>
    int gcd(int a,int b)
    {
    	return !b? a:gcd(b,a%b);
    }
    int main()
    {
    	int n,a,b,c;
    	scanf("%d",&n);
    	while(n--)
    	{
    		scanf("%d%d",&a,&b);
    		for(c=2*b;;c+=b)
    		if(c%b==0&&c!=b&&gcd(a,c)==b)
    		{	
    			printf("%d
    ",c);
    			break;
    		}
    	}
    	return 0;
    }
    



  • 相关阅读:
    附加作业
    我的个人总结
    进度更新
    结对编程——电梯调度
    程序阅读的改进
    WordCount
    阅读程序
    VS2013单元测试
    附加作业
    个人最终总结
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3977469.html
Copyright © 2011-2022 走看看