HDU 1014(互质数 **)

时间:2023-03-10 06:47:18
HDU 1014(互质数 **)

题意是说从 0 开始每次增加 STEP,然后模 MOD 得到一些数,问是否能得到从 0 到 MOD - 1 的所有数。

只要 STEP 与 MOD 互质就可以满足条件,也就是二者的最大公因数为 1 即可。

但是这道题对于输出的格式要求很高,少见的右对齐(自从发现 cin / cout 比 scanf / printf 慢很多就没再使用过 setw() )个人对 scanf 和 printf 的右对齐输出掌握的不好,所以输出调整格式显得很繁琐……

代码如下:

 #include <bits/stdc++.h>
using namespace std;
int gcd(int a,int b)
{
return !b?a:gcd(b,a%b);
}
int main()
{
int step,mod;
while(~scanf("%d%d",&step,&mod))
{
if(gcd(step,mod)==)
{
printf("%*d",,step);
printf("%*d Good Choice\n",,mod);
}
else
{
printf("%*d",,step);
printf("%*d Bad Choice\n",,mod);
}
printf("\n");
}
return ;
}