Pagini recente » Cod sursa (job #2164709) | Cod sursa (job #793396) | Cod sursa (job #1155251) | Cod sursa (job #1958421) | Cod sursa (job #705713)
Cod sursa(job #705713)
#include <cstdio>
#include <cstring>
#define NMax 1000005
#define LL long long
using namespace std;
int N[NMax];
LL M;
inline LL Modulo (int A[], LL B)
{
LL Mod=0;
for (int i=A[0]; i>0; --i)
{
Mod=(10*Mod+A[i])%B;
}
return Mod;
}
inline void Add (int A[], LL B)
{
int i, T=B;
for (i=1; i<=A[0] or T>0; ++i, T/=10)
{
T+=A[i]; A[i]=T%10;
}
A[0]=i-1;
}
void Read ()
{
freopen ("next.in", "r", stdin);
char Number[NMax]; memset (Number, 0, sizeof (Number));
scanf ("%s\n%I64d", Number, &M);
N[0]=strlen (Number);
for (int i=1; i<=N[0]; ++i)
{
N[i]=Number[N[0]-i]-'0';
}
N[0]=strlen (Number);
}
void Print ()
{
freopen ("next.out", "w", stdout);
for (int i=N[0]; i>0; --i)
{
printf ("%d", N[i]);
}
printf ("\n");
}
int main ()
{
Read ();
Add (N, (M-Modulo (N, M))%M);
Print ();
return 0;
}