#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define N 1010
ll ans[N], a, b, cnt, tmp[N] = {1};
bool f;
ll gcd(int a, int b) {
return (!b ? a:gcd(b, a % b));
}
void dfs(ll x,ll y,ll z) {
if (z + 1 == cnt) {
if (x == 1) {
tmp[z + 1] = y;
f = true;
if (tmp[z + 1] < ans[z + 1] || ans[z + 1] == 0) memcpy(ans, tmp, sizeof(tmp));
}
return;
}
ll first = (y % x) ? (y / x + 1):(y / x);
for (ll i = max(tmp[z] + 1, first); i <= ceil(y / x) * (cnt - z); i++) {
tmp[z + 1] = i;
ll nexta, nextb, g;
nexta = x * i - y, nextb = y * i;
g = gcd(nexta, nextb);
dfs(nexta / g, nextb / g, z + 1);
}
}
int main() {
cin >> a >> b;
ll g = gcd(a, b);
for (cnt = 1; ; cnt++) {
dfs(a / g, b / g, 0);
if (f) break;
}
for (int i = 1; i <= cnt; i++) cout << ans[i] << " ";
return 0;
}
这么长时间没人帮我