Pagini recente » Cod sursa (job #501158) | Cod sursa (job #2612367) | Cod sursa (job #2164505) | Cod sursa (job #3240880) | Cod sursa (job #585849)
Cod sursa(job #585849)
#include <cstdio>
#define MAX 10000
bool ok;
int P[MAX], n, m, x, i, j;
long long sol;
int main () {
freopen ("nummst.in", "r", stdin);
freopen ("nummst.out", "w", stdout);
scanf ("%d", &n);
for (i = 2; i * i <= n; i++)
if (!P[i]) {
P[ ++P[0] ] = i;
for (j = 2 * i; j * j <= n; j += i)
P[j] = 1;
}
/*m = n;
for (i = 1; P[i] * P[i] <= n; i++)
if (n % P[i] == 0) {
F[ ++F[0] ] = P[i]; E[0]++;
while (n % P[i] == 0) {
n /= P[i];
E[ E[0] ]++;
}
}
if (E[i])*/
m = n; sol = 1;
for (i = 1; i <= P[0] && P[i] * P[i] <= n; i++)
while (m % P[i] == 0) {
if (!ok) {
x = P[i], ok = 1;
m /= P[i];
continue;
}
m /= P[i];
sol *= (long long) P[i];
}
if (m != 1) sol *= m;
for (i = 1; i <= x; i++)
printf ("%lld ", sol);
return 0;
}