Cod sursa(job #585687)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 30 aprilie 2011 11:04:10
Problema NumMst Scor 9
Compilator cpp Status done
Runda Algoritmiada 2011, Runda Finală, Clasele 10-12 Marime 0.84 kb
#include<stdio.h>

FILE*f=fopen("nummst.in","r");
FILE*g=fopen("nummst.out","w");

int n,nn,k,F[50000],P[50000],i;

inline void prelucrare () {
	int i;
	
	for ( i = 2 ; i * i <= n && n > 1 ; ++i ){
		
		if ( !(n % i) ){
			++k;
			F[k] = i;
			
			while ( !(n % i) ){
				++P[k];
				n /= i;
			}
			
		}
		
	}
	
	if ( n > 1 ){
		++k;
		F[k] = n;
		P[k] = 1;
	}
	
	
	
}

int main () {
	
	fscanf(f,"%d",&n); nn = n;
	
	if ( !(n & 1) ){
		
		fprintf(g,"%d %d\n",n>>1,n>>1);
		
	}
	else{
		
		prelucrare();
		
		if ( k > 1 ){
			
			for ( i = 1 ; i <= F[1] ; ++i ){
				fprintf(g,"%d ",nn / F[1]);
			}
			
		}
		else{
			
			if ( nn & 1 ){
				for ( i = 1 ; i <= ( n >> 1 ) - 1 ; ++i ){
					fprintf(g,"2 ");
				}
				fprintf(g,"3 ");
			}
		}
		
	}
	
	
	fclose(f);
	fclose(g);
	
	return 0;
}