Răspuns :
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("cifra2.in");
ofstream g("cifra2.out");
int n, m=0, cif, z=1, copie, cifmin=10, p, z2;
f >> n;
copie=n;
while (copie>9)
{
cif=copie%10; z*=10;
if (cif<cifmin) { cifmin=cif; }
copie/=10;
}
if (copie<cifmin) cifmin=copie;
g << cifmin << endl;
copie=n; p=1; z2=z;
while (copie>9)
{
cif=copie/z2;
if(cif!=cifmin) m=m*10+cif;
else p*=10;
copie%=z2; z2/=10;
}
if (copie!=cifmin) m=m*10+copie;
else p*=10;
z=z/p;
z2=z;
copie=m;
int pp=0;
while (copie>9)
{
cif=copie/z2-cifmin;
pp=pp*10+cif;
copie%=z2; z2/=10;
}
pp=pp*10+copie-cifmin;
g << pp << "\n";
n=pp;
while (n>9)
{
copie=n; cifmin=10;
while (copie>9)
{
cif=copie%10;
if (cif<cifmin) { cifmin=cif; }
copie/=10;
}
if (copie<cifmin) cifmin=copie;
copie=n; p=1; z2=z; m=0;
while (copie>9)
{
cif=copie/z2;
if(cif!=cifmin) m=m*10+cif;
else p*=10;
copie%=z2; z2/=10;
}
if (copie!=cifmin) m=m*10+copie;
else p*=10;
z=z/p;
z2=z;
copie=m;
int pp=0;
while (copie>9)
{
cif=copie/z2-cifmin;
pp=pp*10+cif;
copie%=z2; z2/=10;
}
pp=pp*10+copie-cifmin;
n=pp;
}
g << n << "\n";
f.close(); g.close();
return 0;
}
#include <fstream>
using namespace std;
ifstream fin("cifra2.in");
ofstream fout("cifra2.out");
int main()
{
int N,copN,cmin,p;
fin>>N;
cmin=9;
copN=N;
while(copN)
{
if(copN%10<cmin)
cmin=copN%10;
copN=copN/10;
}
fout<<cmin<<'\n';
copN=N;
p=1;
N=0;
while(copN)
{
if(copN%10!=cmin)
{
N=N+(copN%10-cmin)*p;
p=p*10;
}
copN=copN/10;
}
fout<<N<<'\n';
while(N>9)
{
cmin=9;
copN=N;
while(copN)
{
if(copN%10<cmin)
cmin=copN%10;
copN=copN/10;
}
copN=N;
p=1;
N=0;
while(copN)
{
if(copN%10!=cmin)
{
N=N+(copN%10-cmin)*p;
p=p*10;
}
copN=copN/10;
}
}
fout<<N<<'\n';
fin.close();
fout.close();
return 0;
}