题目链接
题意
就是给你一个超大整数和一个int类型整数,求最大公约数
解题方法
一开始没有思路,就不知道应该怎么把大整数a与这个数b求最大公约数,最后看了别人写的才会写了,就是可以把每一位上的数%b,然后余数再乘10加上下一位数,再求余,最后得到的那个数再与b求最大公约数等于直接a与b求最大公约数
代码
#include <iostream>
#include <algorithm>
#include <string>
#define int long long
using namespace std;
string a;
int b, sum = 0;
signed main() {
cin >> a >> b;
for (int i = 0; i < a.size(); i++) {
sum = sum * 10 + (a[i] - '0');
sum %= b;
}
cout << __gcd(sum, b) << endl;
return 0;
}