Pagini recente » Cod sursa (job #2903145) | Cod sursa (job #1608121) | Cod sursa (job #2152317) | Cod sursa (job #197812) | Cod sursa (job #585843)
Cod sursa(job #585843)
#include <stdio.h>
#include <bitset>
using namespace std;
#define N_MAX 10000010
bitset <N_MAX> b;
int n;
void found(int x) {
int val = n/x, s = x;
for(int i = 2; i <= x && s >= i; ++i)
if(!b[i]) printf("%d ", val*i), s-=i;
if(s) printf("%d", val*s);
printf("\n");
}
void ciur() {
for(int i = 4; i <= n; i+= 2) b[i] = 1;
for(int i = 3; i <= n; i += 2)
if(!b[i]) {
if(n%i==0) {
found(i);
return;
}
for(int j = i; (long long) j*i <= n; ++j)
b[i*j] = 1;
}
}
int main() {
freopen("nummst.in", "r", stdin);
freopen("nummst.out" ,"w", stdout);
scanf("%d", &n);
if(n%2 == 0) {
found(2);
return 0;
}
ciur();
return 0;
}