题目链接:https://vjudge.net/problem/POJ-2635

题意:给定一个由两个质数积的大数M和一个数L,问大数M的其中较小的质数是否小于L。

题解:因为大数M已经超过long long 范围,那么我们就需要进行大数分解由十进制转换为1000进制,然后只要从2-L遍历一遍。

代码详情:

 1 #include<iostream>
2 #include<algorithm>
3 #include<vector>
4 #include<cstring>
5 #include<cstdio>
6 #include<queue>
7 using namespace std;
8 #define mem(s,n) memset(s,n,sizeof s);
9 typedef long long ll;
10 const int maxn=2e6+100;
11 const int Inf=0x7f7f7f7f;
12 bool isprime[maxn];
13 int prime[maxn];
14 int cnt;
15 // 欧拉筛打表素数表;
16 void judge()
17 {
18 mem(isprime,1);
19 cnt=0;
20 isprime[1]=0;
21 for(int i=2;i<maxn;i++)
22 {
23 if(isprime[i]==1)
24 prime[cnt++]=i;
25 for(int j=0;j<cnt&&(i*prime[j])<maxn;j++)
26 {
27 isprime[i*prime[j]]=0;
28 if(i%prime[j]==0)
29 {
30 break;
31 }
32 }
33 }
34 }
35 int main()
36 {
37 char s[1005];
38 int n,k;
39 judge();
40 while(scanf("%s%d",s,&n)&&(s[0]!='0'&&n!=0))
41 {
42 int len=strlen(s);
43 for( k=2;k<n;k++)
44 {
45 if(isprime[k]==0) continue;
46 int num=0;
47 //大数分解;
48 for(int i=0;i<len;i+=3)
49 {
50 int t=0,ks=1;
51 for(int j=i;j<i+3&&j<len;j++) //转化为1000进制;
52 {
53 ks*=10;
54 t=t*10+s[j]-'0';
55 }
56 num=num*ks+t;
57 num%=k;
58 }
59 //关键;
60 if(num==0)
61 {
62 printf("BAD %d\n",k);
63 break;
64 }
65 }
66 if(k==n) puts("GOOD");
67 }
68 return 0;
69 }

POJ2635(数论+欧拉筛+大数除法)的更多相关文章

  1. 素数筛&&欧拉筛

    折腾了一晚上很水的数论,整个人都萌萌哒 主要看了欧拉筛和素数筛的O(n)的算法 这个比那个一长串英文名的算法的优势在于没有多次计算一个数,也就是说一个数只筛了一次,主要是在%==0之后跳出实现的,具体 ...

  2. 【BZOJ 2190】【SDOI 2008】仪仗队 欧拉筛

    欧拉筛模板题 #include<cstdio> using namespace std; const int N=40003; int num=0,prime[N],phi[N]; boo ...

  3. [51NOD1181]质数中的质数(质数筛法)(欧拉筛)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1181 思路:欧拉筛出所有素数和一个数的判定,找到大于n的最小质 ...

  4. 欧拉筛,线性筛,洛谷P2158仪仗队

    题目 首先我们先把题目分析一下. emmmm,这应该是一个找规律,应该可以打表,然后我们再分析一下图片,发现如果这个点可以被看到,那它的横坐标和纵坐标应该互质,而互质的条件就是它的横坐标和纵坐标的最大 ...

  5. pku-2909 (欧拉筛)

    题意:哥德巴赫猜想.问一个大于2的偶数能被几对素数对相加. 思路:欧拉筛,因为在n<215,在3万多,一个欧拉筛得时间差不多4*104, 那么筛出来的素数有4千多个,那么两两组合直接打表,时间复 ...

  6. hdu2973-YAPTCHA-(欧拉筛+威尔逊定理+前缀和)

    YAPTCHA Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  7. hdu2421-Deciphering Password-(欧拉筛+唯一分解定理+积性函数+立方求和公式)

    Deciphering Password Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  8. POJ-3126.PrimePath(欧拉筛素数打表 + BFS)

    给出一篇有关素数线性筛和区间筛的博客,有兴趣的读者可以自取. 本题大意: 给定两个四位的素数,没有前导零,每次变换其中的一位,最终使得两个素数相等,输出最小变换次数.要求变换过程中的数也都是素数. 本 ...

  9. UVA12995 Farey Sequence [欧拉函数,欧拉筛]

    洛谷传送门 Farey Sequence (格式太难调,题面就不放了) 分析: 实际上求分数个数就是个幌子,观察可以得到,所求的就是$\sum^n_{i=2}\phi (i)$,所以直接欧拉筛+前缀和 ...

随机推荐

  1. 一个C++源文件从文本到可执行文件经历的过程

    一个C++源文件从文本到可执行文件经历的过程 以Hello World为例进行说明 首先我们编写一个cpp源程序 test.cpp #include <iostream> using na ...

  2. 无需扫描即可查找和攻击域SQL Server (SPN)

    无扫描SQL Server发现简介 当您没有凭据或正在寻找不在域中的SQL Server时,使用各种扫描技术来查找SQL Server可能非常有用.但是,此过程可能很嘈杂,耗时,并且可能由于子网未知, ...

  3. CSS 水平滚动条 bug & width auto increase bug

    CSS 水平滚动条 bug css overflow & width auto increase bug 问题排查方式 删除可疑的模块,一步步找到问题的原因,定位问题所在 寻找可能会导致 wi ...

  4. AirPods 2 声音非常小

    AirPods 2 声音非常小 bug 停用蓝牙绝对音量 可能是因为开启了耳机的绝对音量功能; 绝对音量功能开启后,耳机的音量和手机音量分开, 可以在手机设置里停用绝对音量; refs http:// ...

  5. js repeatify & no for loop

    js repeatify & no for loop js repeatify https://www.sitepoint.com/5-typical-javascript-interview ...

  6. 区块链项目NGK未来价值几何?

    没有人可以预知NGK未来会涨到多少钱,就像比特币只有10美分时,也无法预测它会涨到现在的价格⼀样.那时候人们把CPU超频挖矿只作为⼀种爱好和娱乐.所以,人们也没有办法预知NGK未来的价格.但可以知道的 ...

  7. 「NGK每日快讯」2021.1.5日NGK第63期官方快讯!

  8. Captain technology开发的新能源汽车强在哪里?

    在新能源汽车飞速发展的这些年,Captain technology 认识到,要改变有状况,就要不断创新,调整新能源汽车发展路线.新能源汽车本质永远是汽车, Captain technology是在改变 ...

  9. Masterboxan INC金融:在区块链技术基础上推动业务模式的变革创新

    10月初,2020年国际区块链技术与应用大会在硅谷开幕,全球内外区块链技术项目团队.行业领导.专家等共聚一堂,围绕区块链技术与应用展开讨论交流.美国Masterboxan INC万事达资产管理有限公司 ...

  10. Python元组拆包捡到8倍镜快准狠

    元组拆包 元组是不可变列表,列表是通过索引取值的,元组也是: tuple_test = (1, 2, 3) a = tuple_test[0] b = tuple_test[1] c = tuple_ ...