Pagini recente » Cod sursa (job #70632) | Cod sursa (job #295242) | Cod sursa (job #498802) | Cod sursa (job #3241998) | Cod sursa (job #1028325)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("numar4.in");
ofstream g("numar4.out");
int ni, nz, nr[2001], i, ok, c, j=1, rez[2001], l, inc, inc2, inc5, ni_r, nz_r, zec[2001], lz;
int impartire(int a[],int imp, int len);
int verificare(int a[],int imp, int len);
int main()
{
f>>ni>>nz;
for (i=ni+nz; i>=nz+1; i--)
{
f>>nr[i];
if (nr[i]!=0)
{
ok=1;
}
else if(ok==0)
{
ni_r++;
}
}
for (i=nz; i>=1; i--)
{
f>>nr[i];
if (nr[i]!=0)
{
nz_r=0;
}
else
{
nz_r++;
}
}
//initializare
l=ni+nz-ni_r;
lz=nz+1;
for (i=ni+nz-ni_r; i>nz_r; i--)
{
rez[i]=nr[i];
}
zec[lz]=1;
while(!verificare(rez, 5, l) && !verificare(zec, 5, lz))
{
l=impartire(rez, 5, l);
lz=impartire(zec, 5, lz);
}
while(!verificare(rez, 2, l) && !verificare(zec, 2, lz))
{
l=impartire(rez, 2, l);
lz=impartire(zec, 2, lz);
}
g<<l-nz_r<<'\n';
for (i=l; i>nz_r; i--)
{
g<<rez[i];
}
g<<'\n';
g<<lz-nz_r<<'\n';
for (i=lz; i>nz_r; i--)
{
g<<zec[i];
}
return 0;
}
int impartire(int a[],int imp, int len)
{
int R=0;
for (i=len;i>nz_r;i--)
{
R=10*R+a[i];
a[i]=R/imp;
R%=imp;
}
while (!a[len] && len>1)
len--;
return len;
}
int verificare(int a[], int imp, int len)
{
int t = 0;
for (i = len; i > nz_r; i--)
t = (t * 10 + a[i]) % imp;
return t;
}