1000位大数取余;
秦九昭算法+同余与模算术;
1314 = (((1)*10+3)*10+1)*10+4
( a + b ) % n = ( ( a % n ) + ( b % n ) ) % n
( a - b ) % n = ( ( a % n ) - ( b % n ) + n ) % n ( ( a % n ) - ( b % n ) 可能小于 n )
a * b % n = ( a % n ) * ( b % n ) % n ( ( a % n ) * ( b % n ) 可能会溢出,需要用long long 保存中间结果 )
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
string s;
while( cin >> s && s != "0" )
{
int i, len = s.size();
int ans = ( s[0]-'0' ) % 11;
for( i=1; i<len; i++ )
ans = ( (ans*10) % 11 + ( s[i]-'0' ) % 11 ) % 11;
if( ans == 0 )
cout << s << " is a multiple of 11." << endl;
else
cout << s << " is not a multiple of 11." << endl;
}
return 0;
}