Cod sursa(job #586269)

Utilizator cosmyoPaunel Cosmin cosmyo Data 30 aprilie 2011 14:20:08
Problema NumMst Scor 0
Compilator cpp Status done
Runda Algoritmiada 2011, Runda Finală, Clasele 10-12 Marime 0.7 kb
#include <cstdio>
#include <cmath>
int n, a, s;
int  x[4005];
int main() {
	freopen("nummst.in", "r", stdin);
	freopen("nummst.out", "w", stdout);

	int i, a;
	
	scanf("%d\n", &n);
	
	for(a = n / 2; a >= 2; --a) 
		if(n % a == 0) 
			break;
	
	n /= a;
	int nr = 0;
	int j;

	for(i = 2; i <= n; ++i){
		int r = sqrt(i);
		int sw = 1;
		for(j = 2; j <= r; ++j)
			if(i % j == 0) {
				sw = 0;
				break;
			}

		if(sw) 
			x[++nr] = i;
	}
	
	int sol[4005], d = 0;

	for(i = 1; i <= nr; ++i){
		if(n - x[i] < 0) {
			break;
		}
		else
			sol[++d] = x[i], n -= x[i];
	}

	if(d == 1){
		sol[d]--; 
		sol[++d] = 1;
	}

//	printf("%d\n", n);
	for(i = 1; i <= d; ++i)
	printf("%d ", sol[i] * a);
	printf("\n");
	return 0;
}