Pagini recente » Cod sursa (job #732621) | Cod sursa (job #1815507) | Cod sursa (job #2695783) | Cod sursa (job #1993633) | Cod sursa (job #2528669)
#include <bits/stdc++.h>
using namespace std;
const int DIM = 5e4 + 5;
vector<int> prm;
int fth[DIM];
bool oki[DIM];
long double dp[DIM];
int main(void) {
freopen("nummst.in", "r", stdin);
freopen("nummst.out", "w", stdout);
int n; cin >> n;
int vl = 0;
for (int i = 2; i <= n && !vl; ++i)
if (n % i == 0)
vl = i;
for (int i = 2; i < vl; ++i) if (!oki[i]) {
prm.push_back(i);
for (int j = i * i; j <= vl; j += i)
oki[j] = true;
}
for (int i = 1; i <= vl; ++i)
fth[i] = 1;
for (int x : prm) {
for (int i = vl; i >= 0; --i) {
for (int y = x; i + y <= vl; y *= x) {
if (dp[i + y] < dp[i] + log(y)) {
dp[i + y] = dp[i] + log(y);
fth[i + y] = y;
}
}
}
}
for (int i = vl; i; i -= fth[i])
cout << fth[i] * (n / vl) << " ";
return 0;
}