栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 2635 The Embarrassed Cryp...

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 2635 The Embarrassed Cryp...

#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;const int MAX = 1000000 + 100;bool IsPrime[MAX];int Prime[MAX],pn;void MakePrime(){    memset(IsPrime, true, sizeof(IsPrime));    IsPrime[0] = IsPrime[1] = false;    pn = 0;    for(int i=2; i<MAX; i++){        if(IsPrime[i])  Prime[pn++] = i;        for(int j=0; j<pn && Prime[j]*i<MAX; j++){ IsPrime[Prime[j]*i] = false; if(i % Prime[j] == 0)   break;        }    }}char str[1010];int L,num[1010];bool Check(int len, int mod){    int res = 0;    for(int i = len-1; i>=0; i--)        res = (res * 1000 + num[i]) % mod;    if(res) return true;    return false;}int main(){    MakePrime();    while(scanf("%s %d",str, &L) != EOF && L){        int len = strlen(str);        memset(num, 0, sizeof(num));        for(int i=0; i<len; i++){ int id = (len + 2 - i)/3 - 1; num[id] = num[id] * 10 + str[i] - '0';        }        int lenk = len / 3 + ((len % 3) ? 1 : 0);        int pMin = 0,flag = 1;        while(Prime[pMin] < L && pMin < pn){ if(!Check(lenk, Prime[pMin])){     flag = 0;     printf("BAD %dn",Prime[pMin]);     break; } pMin++;        }        if(flag)    puts("GOOD");    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/380034.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号