1千万长度的数对73和137取模。(两个数有点像,不要写错了)
效率要高的话,每15位取一次模,因为取模后可能有3位,因此用ll就最多15位取一次。
一位一位取模也可以,但是比较慢,取模运算是个耗时的运算。
#include <cstdio> #define ll long long ll n,m; int p,cas; char s[10000005]; int main() { while(gets(s)){ n=m=p=0; while(s[p]){ for(int i=0;i<15&&s[p];i++,p++){ n=n*10+s[p]-'0'; m=m*10+s[p]-'0'; } n%=73; m%=137; } printf("Case #%d: ",++cas); if(n||m)puts("NO"); else puts("YES"); } }