HDU 2504 又见GCD
2014-07-24 00:56
274 查看
又见GCD
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9989 Accepted Submission(s): 4160
[align=left]Problem Description[/align]
有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b。若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c。
[align=left]Input[/align]
第一行输入一个n,表示有n组测试数据,接下来的n行,每行输入两个正整数a,b。
[align=left]Output[/align]
输出对应的c,每组测试数据占一行。
[align=left]Sample Input[/align]
2 6 2 12 4
[align=left]Sample Output[/align]
4 8
原题链接。
#include<stdio.h> int gcd(int n,int m) //欧几里得算法 也可以用递归形式 本质上是一样的 { int a; while(m) { a = n%m; n = m; m = a; } return n; } int main() { int a,b,c,i,n; scanf("%d",&n); while(n--) { scanf("%d%d",&a,&b); <span style="white-space:pre"> </span>for(i=2;;i++)<span style="white-space:pre"> </span> // i不需要限定范围 <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>if(gcd(a,i*b) == b) <span style="white-space:pre"> </span>break; <span style="white-space:pre"> </span>}<span style="white-space:pre"></span> printf("%d\n",i*b); } return 0; }
今天被这道题虐哭 还一个劲考虑b==1的情况 以为是特殊情况
开始就想到辗转相除法 可是怎么都做不出来 做题的范围还是太狭隘
看到别人不停的AC 自己却不断“哇(WA)"
深深感觉到自己知道的太少 要学的还有太多
人一旦飘起来 就很难再沉下去
所以 不气馁 有召唤 爱自由
相关文章推荐
- hdu 2504 又见GCD
- Hdu 2504 又见GCD【基础数论】
- 【HDU - 2504】又见GCD
- [数论]HDU 2504 又见GCD
- HDU2504又见GCD
- HDU 2504 又见GCD
- HDU-2504 又见GCD
- ecjtu-summer training #3 C 又见GCD HDU 2504
- HDU 2504 又见GCD(gcd)
- hdu 2504 又见GCD
- hdu 2504 又见gcd(gcd)
- HDU 2504 又见GCD
- HDOJ(HDU) 2504 又见GCD(利用最大公约数反推)
- HDU 2504 又见GCD
- HDU-2504-又见GCD(Java强行暴力水过!)
- HDOJ(HDU) 2504 又见GCD(利用最大公约数反推)
- HDU 2504 又见GCD
- HDU 2504 又见GCD
- HDU 2504 又见GCD
- hdu2504——又见GCD(水)