Cod sursa(job #956431)

Utilizator burakbugrulBurak Bugrul burakbugrul Data 3 iunie 2013 09:59:16
Problema Guvern Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.3 kb
#include <cstdio>
#include <iostream>
#include <vector>

#define pb push_back

using namespace std;

const int MAXN=10000010;

int N,res;

bool used[MAXN];
bool prime[MAXN];

vector<int> vec;

int main(){
	
	freopen("nummst.in","r",stdin);
	freopen("nummst.out","w",stdout);
	
	int a,b;
	
	scanf(" %d",&N);
	
	for( int i=2 ; i<=N ; i++ )
		if( !used[i] ){
			prime[i]=1;
			for( int j=i ; j<=N ; j+=i )
				used[j]=1;
		}
	
	for( int i=2 ; i<=N ; i++ )
		if( prime[i] && N%i==0 ){
			for( int j=1 ; j<=i ; j++ )
				printf("%d ",N/i);
			return 0;
		}
	
	/*for( int i=1 ; i<=N/2 ; i++ )
			if( gcd(i,N-i)>res ){
				res=gcd(i,N-i);
				vec.clear();
				vec.pb(i);	
				vec.pb(N-i);	
			}/*
	
	/*for( int i=1 ; i<=N ; i++ )
		for( int j=i ; j<=N ; j++ )
			for( int k=j ; k<=N ; k++ )
				if( i+j+k==N && gcd(gcd(i,j),k)>res ){
					gcd(gcd(i,j),k);
					vec.clear();
					vec.pb(i);
					vec.pb(j);
					vec.pb(k);
				}*/
	
	/*for( int i=1 ; i<=N ; i++ )
		for( int j=i ; j<=N ; j++ )
			for( int k=j ; k<=N ; k++ )
				for( int l=k ; l<=N ; l++ )
					if( i+j+k+l==N && gcd(gcd(i,j),gcd(k,l))>res ){
						res=gcd(gcd(i,j),gcd(k,l));
						vec.clear();
						vec.pb(i);
						vec.pb(j);
						vec.pb(k);
						vec.pb(l);
					}*/
	
	for( vector<int>::iterator it=vec.begin() ; it!=vec.end() ; it++ )
		printf("%d ",*it);
	return 0;
}