Pagini recente » Cod sursa (job #2192110) | Cod sursa (job #2386292) | Cod sursa (job #1689607) | Cod sursa (job #1834427) | Cod sursa (job #971777)
Cod sursa(job #971777)
#include <fstream>
using namespace std;
const int N = 10001;
int v[N];
ifstream in("nummst.in");
ofstream out("nummst.out");
inline int cmmdc(int a, int b){
return b == 0 ? a : cmmdc(b, a % b);
}
inline int cmmmc(int a, int b){
return a / cmmdc(a, b) * b;
}
int factor(int n){
int val = 2;
while (n % val) ++val;
return val;
}
void solve(int v[], int n){
v[0] = v[1] = 1;
for (int i = 1 ; i <= n ; i++)
for (int j = 1 ; j < i ; j++)
v[i] = max(v[i], cmmmc(v[j], i - j));
}
void print(int v[], int poz, int F){
while (poz){
int next = poz;
while (v[poz] != cmmmc(v[next], poz - next))
next--;
out << (poz - next) * F << " ";
poz = next;
}
out << "\n";
}
int main(){
int F, n;
in >> n;
F = factor(n);
solve(v, F);
print(v, F, n / F);
return 0;
}