Pagini recente » Cod sursa (job #3127049) | Cod sursa (job #1635253) | Cod sursa (job #359885) | Cod sursa (job #495616) | Cod sursa (job #968569)
Cod sursa(job #968569)
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
int n,i,j,cmmdc;
char cr[5000003];
vector < int > v;
vector < int > ::iterator it;
int main()
{
freopen("nummst.in","r",stdin);
freopen("nummst.out","w",stdout);
scanf("%d",&n);
for(i=2;i*i<=n;i++)
if(n%i==0)
{
if(n/i>cmmdc) cmmdc=n/i;
if(i>cmmdc) cmmdc=i;
}
n/=cmmdc;
if(n==2)
{
printf("%d %d\n",cmmdc,cmmdc);
return 0;
}
if(n==3)
{
printf("%d %d\n",cmmdc,2*cmmdc);
return 0;
}
if(n==4)
{
printf("%d %d\n",cmmdc,3*cmmdc);
return 0;
}
for(i=2;i*i<=n;i++)
if(cr[i]==0)
{
for(j=i*i;j<=n;j+=i)
cr[j]=1;
}
for(i=2;i<=n;i++)
if(cr[i]==0)
{
v.push_back(i);
n-=i;
}
if(n) v.push_back(n);
sort(v.begin(),v.end());
for(it=v.begin();it!=v.end();it++)
printf("%d ",*it*cmmdc);
return 0;
}