Alice与Bob-整数分解问题脚本实现
题目:
密码学历史中,有两位知名的杰出人物,Alice和Bob。他们的爱情经过置换和轮加密也难以混淆,即使是没有身份认证也可以知根知底。就像在数学王国中的素数一样,孤傲又热情。下面是一个大整数:98554799767,请分解为两个素数,分解后,小的放前面,大的放后面,合成一个新的数字,进行md5的32位小写哈希,提交答案。 注意:得到的 flag 请包上 flag{} 提交
先进行整数分解,再进行MD5杂凑,十分简单,在线有工具可以实现,这里还是给出脚本。
import math
import hashlib
# 判断一个数是否为质数
def is_prime(n):
if n <= 1:
return False
if n == 2:
return True
if n % 2 == 0:
return False
for i in range(3, int(math.sqrt(n)) + 1, 2):
if n % i == 0:
return False
return True
# 找到两个质数因子
def find_two_prime_factors(n):
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0 and is_prime(i):
other_factor = n // i
if is_prime(other_factor):
return i, other_factor
return None # 如果找不到两个质数因子,返回None
# 计算数字的MD5哈希
def get_md5_hash(value):
return hashlib.md5(value.encode('utf-8')).hexdigest()
# 主函数
def main():
num = 98554799767 # 给定的大整数
factors = find_two_prime_factors(num) # 找到两个质数因子
if factors:
small, large = sorted(factors) # 按照小的放前面,大的放后面
combined_number = str(small) + str(large) # 合成一个新的数字
md5_hash = get_md5_hash(combined_number) # 计算MD5哈希
print(f"两个质数因子是: {small} 和 {large}")
print(f"合成的数字是: {combined_number}")
print(f"MD5哈希值是: {md5_hash}")
else:
print("无法找到两个质数因子")
if __name__ == "__main__":
main()
运行后得到答案
Alice与Bob-整数分解问题脚本实现的更多相关文章
- ACdream群赛1112(Alice and Bob)
题意:http://acdream.info/problem?pid=1112 Problem Description Here is Alice and Bob again ! Alice and ...
- uva 1500 - Alice and Bob(论证)
option=com_onlinejudge&Itemid=8&page=show_problem&problem=4246" target="_blank ...
- ny788 又见Alice and Bob
又见Alice and Bob 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 集训生活如此乏味,于是Alice和Bob发明了一个新游戏.规则如下:首先,他们得到一个 ...
- 计蒜客 ACM训练联盟周赛 第一场 Alice和Bob的Nim游戏 矩阵快速幂
题目描述 众所周知,Alice和Bob非常喜欢博弈,而且Alice永远是先手,Bob永远是后手. Alice和Bob面前有3堆石子,Alice和Bob每次轮流拿某堆石子中的若干个石子(不可以是0个), ...
- 2016中国大学生程序设计竞赛 - 网络选拔赛 J. Alice and Bob
Alice and Bob Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- bzoj4730: Alice和Bob又在玩游戏
Description Alice和Bob在玩游戏.有n个节点,m条边(0<=m<=n-1),构成若干棵有根树,每棵树的根节点是该连通块内编号最 小的点.Alice和Bob轮流操作,每回合 ...
- Alice and Bob(2013年山东省第四届ACM大学生程序设计竞赛)
Alice and Bob Time Limit: 1000ms Memory limit: 65536K 题目描述 Alice and Bob like playing games very m ...
- 整数分解 && 质因数分解
输入整数(0-30)分解成所有整数之和.每四行换行一次. 一种方法是通过深度优先枚举出解.通过递归的方式来实现. #include <stdio.h> #include <strin ...
- sdutoj 2608 Alice and Bob
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2608 Alice and Bob Time L ...
- hdu 4268 Alice and Bob
Alice and Bob Time Limit : 10000/5000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Tota ...
随机推荐
- 23种设计模式实战:重学Java设计模式
23种设计模式实战PDF: 链接:https://pan.baidu.com/s/1XfjkBt19G7jZQfwk5wAV3w 提取码:1234
- 解决:The content of element type "web-app" must match "(icon?display
错误描述: The content of element type "web-app" must match"(icon?,display-name?,descripti ...
- 即时通讯技术文集(第26期):实时音视频技术合集(Part1) [共16篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第26 期. [- 1 -] 实时语音聊天中的音频处理与编码压缩技术简述 [链接] http:/ ...
- @wraps 修饰器:让你的 Python 代码更加简短可爱 | 从简单实例来认识它
@wraps 修饰器:让你的 Python 代码更加简短可爱 | 从简单实例来认识它 我们在上一篇文章(Python实例来认识并发与并行)中用到了 @timer ,在函数定义时,加上一个小小的 @ti ...
- Jetbrain Fleet体验版linxu环境开发Python初体验
Jetbrain Fleet体验版linxu环境开发Python初体验 (base) linxu@linxu-PC:~/Projects/FleetProjects$ conda activate d ...
- TagHelper中获取当前Url
在自定义TagHelper时,我们无法通过TagHelperContext 和 TagHelperOutput 获取到当前路由的信息,我们需要添加注入ViewContext [HtmlAttribut ...
- 安装docker-compose v1
1.首先要确保已经安装docker 2.下载docker-compose二进制文件,并移动到适当的目录 sudo curl -L "https://github.com/docker/com ...
- Golang-函数5
http://c.biancheng.net/golang/func/ Go语言函数(Go语言func) 函数构成了代码执行的逻辑结构,在Go语言中,函数的基本组成为:关键字 func.函数名.参数列 ...
- w3cschool-Storm 入门教程
Storm 基础知识 基础知识 Storm 是一个分布式的,可靠的,容错的数据流处理系统.它会把工作任务委托给不同类型的组件,每个组件负责处理一项简单特定的任务.Storm 集群的输入流由一个被称作 ...
- 某教育网站疑似删库。。。没备份。。。数据全没了。。。Sealos 带你一分钟满血复活
2025 年 1 月 15 日,微信群里有人爆料,某教育网站疑似删库,导致网站无法访问.具体的问题是数据库被格式化了,而且也没有备份,连数据库表结构都没有,不仅业务瘫痪,也无法拉起新的应用,实在是有点 ...