Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 650    Accepted Submission(s): 333
Author
UESTC

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <iomanip>
#include <math.h>
#include <map>
using namespace std;
#define FIN     freopen("input.txt","r",stdin);
#define FOUT    freopen("output.txt","w",stdout);
#define INF     0x3f3f3f3f
#define INFLL   0x3f3f3f3f3f3f3f
#define lson    l,m,rt<<1
#define rson    m+1,r,rt<<1|1
typedef long long LL;
typedef pair<int,int> PII;
const int MAXN = 10000005;
char s[MAXN];
int check(char s[], int mod){
    
    //将数字看成多项式的和  比如12345就是1*10^5+2*10^4+3*10^3+4*10^2+5*10^1
    //先把数求模和分开求再合起来求模结果是一样的
    
    LL sum = 0;
    int len = strlen(s);
    for( int i = 0; i < len ; i++){
        sum = sum*10 + s[i]-48;
        sum %= mod;
    }
    return sum;
}
int main()
{
    //FIN
    int cas = 1;
    while(~scanf("%s", s)){
        if(check(s, 137) == 0 && check(s, 73) == 0)  printf("Case #%d: YES\n",cas++);
        else  printf("Case #%d: NO\n",cas++);
    }
}
原文:http://www.cnblogs.com/Hyouka/p/5774231.html