Pagini recente » Cod sursa (job #1280708) | Cod sursa (job #1888661) | Cod sursa (job #2487205) | Cod sursa (job #1281090) | Cod sursa (job #2087869)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("date.in");
ofstream fout("date.out");
int d[105],i,j,n;
vector <int> v[105],sol;
void solve(int i, int j, int val)
{
int x;
for(x=0;x<v[i].size();x++)
v[val].push_back(v[i][x]*j);
for(x=1;x<j;x++)
v[val].push_back(j);
}
void rez(int n)
{
if(n>99)
{
if(n%2==1)
rez((n-9)/2);
else
rez((n-8)/2);
for(int x=0;x<sol.size();x++)
sol[x]*=2;
if(n%2==1)
{
sol.push_back(3);sol.push_back(6);
}
else
{
sol.push_back(4);sol.push_back(4);
}
}
else
{
for(int x=0;x<v[n].size();x++)
sol.push_back(v[n][x]);
}
}
int main()
{
d[1]=1;
v[1].push_back(1);
for(i=1;i<=99;i++)
{
if(d[i]==1)
{
j=2;
while(j*i+j*(j-1)<=99)
{
if(d[j*i+j*(j-1)]==1)
{
j++;
continue;
}
d[j*i+j*(j-1)]=1;
solve(i, j, j*i+j*(j-1));
j++;
}
}
}
fin>>n;
rez(n);
for(int x=0;x<sol.size();x++)
fout<<sol[x]<<" ";
fin.close();
fout.close();
return 0;
}