Pagini recente » Cod sursa (job #2971726) | Cod sursa (job #2779106) | Cod sursa (job #2214597) | Cod sursa (job #2305086) | Cod sursa (job #3156824)
#include<bits/stdc++.h>
using namespace std;
ifstream F("sarpe.in");
ofstream G("sarpe.out");
char s[1003];
int i,v[2003],u[2003],z[2003],t,j;
int main()
{
for(F.getline(s,1001),v[0]=strlen(s),z[0]=1,z[1]=4,i=1;i<=v[0];++i)
v[i]=s[v[0]-i]-'0';
for(i=1;i<=v[0];++i) {
for(t=0,j=1;j<=v[0]||t;++j,t/=10)
u[i+j-1]=(t+=u[i+j-1]+v[i]*v[j])%10;
if(i+j-2>u[0])
u[0]=i+j-2;
}
for(t=0,i=1;i<=u[0];++i)
u[i]-=((i<=v[0])?v[i]:0)+t,u[i]+=(t=u[i]<0)*10;
for(;u[0]>1&&!u[u[0]];--u[0]);
for(t=0,i=1;i<=u[0]||t;++i,t/=10)
u[i]=(t+=u[i]*2)%10;
for(u[0]=i-1,t=0,i=1;i<=u[0]||i<=z[0]||t;++i,t/=10)
u[i]=(t+=u[i]+z[i])%10;
u[0]=i-1;
if(v[0]==1&&v[1]==1)
G<<2;
else
for(i=u[0];i;--i)
G<<u[i];
return 0;
}