POJ 2635 The Embarrassed Cryptographer 大数模
题目: http://poj.org/problem?id=2635
利用同余模定理大数拆分取模,但是耗时,需要转化为高进制,这样位数少,循环少,这里转化为1000进制的,如果转化为10000进制,需要long long
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cmath>
using namespace std; int p[];
bool prime[];
void prime_init()
{
memset(prime, , sizeof(prime));
prime[] = ;
for(int i = ; i <= ; i += )
prime[i] = ;
for(int i = ; i <= sqrt(); i += )
{
if(prime[i])
{
for(int j = i*i; j <= ; j += i+i)
prime[j] = ;
}
}
int cnt = ;
for(int i = ; i < ; i++)
if(prime[i])p[cnt++] = i;
} int main()
{
char str[];
int x, num[];
prime_init();
while(scanf("%s %d", str, &x) != EOF)
{
if(!strcmp(str, "") && x == )break;
int len = strlen(str);
int tmp = , k = ;
for(int i = ; i < len%; i++)
tmp = tmp * + str[i] - '';
num[k++] = tmp;
for(int i = len%; i < len; i += )
{
tmp = ;
for(int j = i; j < i+; j++)
tmp = tmp * + str[j] - '';
num[k++] = tmp;
}
bool flag = ;
for(int i = ; p[i] < x && !flag; i++)
{
tmp = ;
for(int j = ; j < k; j++)
tmp = (tmp * + num[j]) % p[i];
if(tmp == )
{
flag = ;
printf("%s %d\n", "BAD", p[i]);
}
}
if(!flag)printf("GOOD\n");
}
return ;
}
POJ 2635 The Embarrassed Cryptographer 大数模的更多相关文章
- POJ 2635 The Embarrassed Cryptographer (千进制,素数筛,同余定理)
The Embarrassed Cryptographer Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 15767 A ...
- POJ 2635 The Embarrassed Cryptographer
大数取MOD... The Embarrassed Cryptographer Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 1 ...
- [ACM] POJ 2635 The Embarrassed Cryptographer (同余定理,素数打表)
The Embarrassed Cryptographer Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 11978 A ...
- POJ - 2635 The Embarrassed Cryptographer(千进制+同余模)
http://poj.org/problem?id=2635 题意 给一个大数K,K一定为两个素数的乘积.现给出一个L,若K的两个因子有小于L的,就输出BAD,并输出较小的因子.否则输出GOOD 分析 ...
- POJ 2635 The Embarrassed Cryptographer(大数求余)
题意:给出一个大数,这个大数由两个素数相乘得到,让我们判断是否其中一个素数比L要小,如果两个都小,输出较小的那个. 分析:大数求余的方法:针对题目中的样例,143 11,我们可以这样算,1 % 11 ...
- poj 2635 The Embarrassed Cryptographer(数论)
题目:http://poj.org/problem?id=2635 高精度求模 同余模定理. 题意: 给定一个大数K,K是两个大素数的乘积的值.再给定一个int内的数L 问这两个大素数中最小的一个是 ...
- POJ 2635 The Embarrassed Cryptographer 高精度
题目地址: http://poj.org/problem?id=2635 题意:给出一个n和L,一直n一定可以分解成两个素数相乘. 让你判断,如果这两个素数都大于等于L,则输出GOOD,否则输出最小的 ...
- (POJ2635)The Embarrassed Cryptographer(大数取模)
The Embarrassed Cryptographer Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 13041 Accep ...
- 【阔别许久的博】【我要开始攻数学和几何啦】【高精度取模+同余模定理,*】POJ 2365 The Embarrassed Cryptographer
题意:给出一大数K(4 <= K <= 10^100)与一整数L(2 <= L <= 106),K为两个素数的乘积(The cryptographic keys are cre ...
随机推荐
- android颜色对应的xml配置值,颜色表
网上找的一些颜色值 XML配置 <?xml version="1.0" encoding="utf-8" ?> <resources> ...
- .Net设计模式_工厂模式(3)
3.抽象工厂模式 引言: 我们知道汽车需要很多部件才能组装成一辆成品的车,那么我们需要汽车厂生产很多东西,如:马达.车轴.轮胎等,这些东西组装起来后成为了一辆车. 这些东西就是产品族,图解:(出之ht ...
- Java基础知识强化之IO流笔记56:IO流练习之 登录注册IO版
1. 登录注册IO版的Java项目框架,如下: 2. 具体代码实现: (1)User.java(cn.itcast.game): package cn.itcast.pojo; /** * 这是用户 ...
- PHP克隆魔术方法
克隆对象 __clone() $p2=clone $p; $p=>say(); 克隆对象的时候自动调用的方法 作用和构造方法一样是对新克隆的对象进行初始化 在这个方法中$this是副本所以可以给 ...
- ASP.NET 开发人员应该知道的8个网站
1.CodeProject http://www.codeproject.com/ 2.DotNetNuke 3.4GuysFromRolla 4.DevSource 5.DevX http://ww ...
- iOS应用审核的通关秘籍
磨刀不误砍柴工.作为手机应用开发者,你需要向应用商店提交应用审核,迅速通过审核可以让你抢占先机.对苹果iOS应用开发者来说尤其如此.苹果应用商店的审核近乎吹毛求疵,下面这些清单可以让你知道苹果会在哪些 ...
- 安卓SQLite数据库操作,半小时开发新闻管理系统,纯干货
本教程致力于可以快速的学习安卓软件开发,希望能通过一系列自己手写的教程,帮助正在学习或想要学习安卓开发的同仁. 本教程由今日头条-全栈攻城狮号首发,都是一个字一个字码的.请尊重劳动成果,转载请注明出处 ...
- js calendar橙色日期选择器代码
原文出处 http://files.cnblogs.com/files/quixon/date_js.rar
- MVC中HtmlHelper用法大全参考
MVC中HtmlHelper用法大全参考 解析MVC中HtmlHelper控件7个大类中各个控件的主要使用方法(1) 2012-02-27 16:25 HtmlHelper类在命令System.Web ...
- web开发学习之旅---css第一天
一.css全称 Cascade Style Sheet层叠样式表 二.css引入方式 行内样式:<h2 style="color:#0F0">Hello World&l ...