HDU-2303 The Embarrassed Cryptographer 高精度算法(大数取模)
2024-09-02 01:09:09
题目链接:https://cn.vjudge.net/problem/HDU-2303
题意
给一个大数K,和一个整数L,其中K是两个素数的乘积
问K的是否存在小于L的素数因子
思路
枚举素数,大数取模即可
注意大数取模代码,一开始没想到,看了别人的代码才感觉厉害
代码
#include <cstring>
#include <cstdio>
const int MAX=int(1e6);
char a[100+5];
int b, psize=0, primes[MAX+5];
void init(void){
int isprime[MAX+5];
memset(isprime, -1, sizeof(isprime));
for (int i=2; i<=MAX; i++){
if (isprime[i]){
primes[psize++]=i;
for (int k=2*i; k<=MAX; k+=i)
isprime[k]=0;
}
}
}
inline int mod(const int &idx, const int &length){
int ans=0;
for (int i=0; i<length; i++)
ans=(ans*10+a[i]-'0')%primes[idx];
return ans;
}
int main(void){
init();
while (scanf("%s%d", a, &b)==2 && b){
int length=strlen(a), flag=0;
for (int idx=0; idx<psize && primes[idx]<b; idx++)
if (!mod(idx, length)) {
printf("BAD %d\n", primes[idx]);
flag=1; break;
}
if (!flag) printf("GOOD\n");
}
return 0;
}
Time | Memory | Length | Lang | Submitted |
---|---|---|---|---|
1060ms | 5736kB | 888 | G++ | 2018-02-08 13:54:43 |
最新文章
- Laravel Composer and ServiceProvider
- Spring之初体验
- Erlang C1500K长连接推送服务-内存
- JS中数组的操作[转]
- 应用程序框架实战十五:DDD分层架构之领域实体(验证篇)
- Balanced Binary Tree [LeetCode]
- C# ~ 数据库连接
- topcoder SRM 610 DIV2 TheMatrix
- JDBC操作
- FXForms,自动生成iOS表单
- SQL表值函数和标量值函数的区别
- 使用duplicate target database ... from active database复制数据库
- (转)IOS之Info.plist文件简介
- memcache 内部原理实现
- 为现代JavaScript开发做好准备
- JMS消息传输机制
- A Tour of Go Mutating Maps
- CodeForces 587A
- Down to the TLP: How PCI express devices talk (Part II)
- 写一个程序,统计自己C语言共写了多少行代码,Github基本操作