POJ 2635 The Embarrassed Cryptographer 高精度
题目地址: http://poj.org/problem?id=2635
题意:给出一个n和L,一直n一定可以分解成两个素数相乘。
让你判断,如果这两个素数都大于等于L,则输出GOOD,否则输出最小的那个素数。
从1到1000000的素数求出来,然后一个一个枚举到L,看能否被n整除,能的话就输出BAD+改素数
都不行的话,说明两个素数都大于等于L,输出GOOD
AC代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <vector>
#include <list>
#include <deque>
#include <queue>
#include <iterator>
#include <stack>
#include <map>
#include <set>
#include <algorithm>
#include <cctype>
using namespace std; typedef long long LL;
const int N=1000005;
const LL II=100000000;
const int INF=0x3f3f3f3f;
const double PI=acos(-1.0); LL pri[N/100];
bool num[N];
int xx;
char s[105];
LL x[100]; void prime()
{
LL i,j;
int k=0;
memset(num,0,sizeof(num));
for(i=2;i<N;i++)
{
if(!num[i])
{
pri[++k]=i;
for(j=i;j<N;j+=i)
num[j]=1;
}
}
xx=k;
} void toint(char *s,LL *t,int &k)
{
int len=strlen(s),j;
char x[10]={0};
k=0;
for(;len/8;len-=8)
{
strncpy(x,s+len-8,8);
LL sum=0;
for(j=0;j<8;j++)
sum=sum*10+x[j]-'0';
t[k++]=sum;
}
if(len)
{
strncpy(x,s,len);
LL sum=0;
for(j=0;j<len;j++)
sum=sum*10+x[j]-'0';
t[k++]=sum;
}
} bool modd(LL p,int len)
{
int i;
LL xh=0;
for(i=len-1;i>=0;i--)
xh=(xh*II+x[i])%p;
if(xh==0)
return true;
return false;
} int main()
{
int i,j,L;
prime();
while(scanf("%s%d",s,&L))
{
if(strcmp(s,"0")==0&&L==0)
break;
int len;
toint(s,x,len);
int p=1,flag=0;
while(pri[p]<L)
{
if(modd(pri[p],len))
{
flag=1;
printf("BAD %lld\n",pri[p]);
break;
}
p++;
}
if(flag==0)
printf("GOOD\n");
}
return 0;
}
POJ 2635 The Embarrassed Cryptographer 高精度的更多相关文章
- 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 (千进制,素数筛,同余定理)
The Embarrassed Cryptographer Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 15767 A ...
- 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 利用同余模定理大数拆分取模,但是耗时,需要转化为高进制,这样位数少,循环少,这里转化为1000进制的,如果转化为10000进制,需 ...
- 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 ...
- POJ2635——The Embarrassed Cryptographer(高精度取模+筛选取素数)
The Embarrassed Cryptographer DescriptionThe young and very promising cryptographer Odd Even has imp ...
- 【阔别许久的博】【我要开始攻数学和几何啦】【高精度取模+同余模定理,*】POJ 2365 The Embarrassed Cryptographer
题意:给出一大数K(4 <= K <= 10^100)与一整数L(2 <= L <= 106),K为两个素数的乘积(The cryptographic keys are cre ...
随机推荐
- js左侧三级菜单导航代码
效果演示: 实例代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...
- fstream,ifstream,ofstream 详解与用法
fstream,istream,ofstream 三个类之间的继承关系 fstream :(fstream继承自istream和ofstream)1.typedef basic_fstream< ...
- 【剑指Offer学习】【面试题18 :树的子结构】
题目:输入两棵二叉树A 和B.推断B 是不是A 的子结构. 二叉树结点的定义: /** * 二叉树的树结点 */ public static class BinaryTreeNode { int va ...
- 注解配置 ssh
注解 <?xml version="1.0" encoding="UTF-8"? > <beans xmlns="http://ww ...
- c++ 虚析构函数[避免内存泄漏]
c++ 虚析构函数: 虚析构函数(1)虚析构函数即:定义声明析构函数前加virtual 修饰, 如果将基类的析构函数声明为虚析构函数时,由该基类所派生的所有派生类的析构函数也都自动成为虚析构函数. ...
- vim下设置tab
前言:大多数情况下tab键的宽度设置为4个空格,这个可以根据自己 的代码风格进行替换,然而当你提交不同的语言的代码的时候python 和c的时候就有区别了.c的话一般tab键做缩进,而python提交 ...
- BestCoder Round #57 (div.2)
第一场BC...感觉还是多参加点比赛吧... 第一题水题各种乱搞就可以过 第二题依旧水题..记个前缀和就行了.. 虽说是2道水题..然而我T1提交时就过了20min, T2还RE了一发..第二次提交就 ...
- portal---easyui
一,效果图. 二,源代码. <!doctype html><html><head> <meta http-equiv="Content-Type&q ...
- 彻底理解浮动float CSS浮动详解 清除浮动的方法
我们把网页的常用的布局格式分为以下三种: 1.标准流. 所谓的标准流就是,行内元素自己单独一行,而块级元素是上下显示的. 以前我们学习的都是标准流. 注意:标准流使我们网页布局中最稳定的一种结构 ...
- kingso_module - Taocode
kingso_module - Taocode 模块介绍 Merger 功能介绍 Merger的功能: 合并多台Searcher机器的部分查询结果,得到最终的完整查询结果 向Detail集群请求最终展 ...