Pagini recente » Cod sursa (job #47233) | Cod sursa (job #1836883) | Cod sursa (job #804851) | Cod sursa (job #1557647) | Cod sursa (job #1790403)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("next.in");
ofstream g("next.out");
long long D, R;
int n = 0;
char a[1000010];
void Mod(char a[], long long D)
{
for(int i = n; i > 0; i--)
R = (10 * R + a[i]) % D;
}
void adun(char a[], long long R)
{
long long t = R;
for(int i = 1; i <= n; i++)
{
t += a[i];
a[i] = t % 10;
t /= 10;
if(t == 0)break;
}
while(t > 0)
{
a[++n] = t % 10;
t /= 10;
}
}
void afisare()
{
for(int i = n; i > 0; i--)
g << int(a[i]);
}
void invers()
{
int i = 1, j = n;
while(i < j)
swap(a[i++], a[j--]);
}
int main()
{
char c;
f.get(c);
while(c != '\n')
{
a[++n] = c - 48;
f.get(c);
}
invers();
f >> D;
Mod(a, D);
R = D - R;
if(R != D)adun(a, R);
afisare();
}