首页 > 其他分享 >[蓝桥杯 2019 省 A] 填空问题 E

[蓝桥杯 2019 省 A] 填空问题 E

时间:2024-03-13 21:44:39浏览次数:25  
标签:__ ll long 蓝桥 2019 ans 填空

一、题目描述

[蓝桥杯 2019 省 A] 填空问题E RSA 解密

二、问题简析

本问题可以分成三部分求解:


三、AC代码

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef unsigned long long ull;

ll n = 1001733993063167141, d = 212353, C = 20190324;

ll extgcd(ll a, ll b, ll &x, ll &y)
{
	if (b == 0)
	{
		x = 1, y = 0;
		return a;
	}
	
	ll ret = extgcd(b, a % b, y, x);
	y -= (a / b) * x;
	
	return ret;
}

ll quickmi(ll x, ll n, ll m)
{
	ll ans = 1;
	while (n > 0)
	{
		if (n & 1)
			ans = (__int128)ans * x % m;
		x = (__int128)x * x % m;
		n >>= 1;
	}
	return ans;
}

int main()
{
	// 求p, q 
	ll p, q;
	for (p = 2; p * p <= n; p++)
		if (n % p == 0)
		{
			q = n / p;
			break;	
		}
	cout << "p = " << p << " "
		 << "q = " << q << endl;
	
	// 求e 
	ll MOD = (p - 1) * (q - 1), x, y;
	extgcd(d, MOD, x, y);
	ll e = (x % MOD + MOD) % MOD;
	cout << "e = " << e << endl;
	
	// 求原文X
	cout << quickmi(C, e, n) << endl; 
	
	return 0;	
}

注:

  • 1、拓展欧几里得算法的解 \(x\),即 \(e\),取最小正整数解。
  • 2、求快速幂时,使用 long long 会溢出,所以要采用更大的类型,如 __int128__int256

标签:__,ll,long,蓝桥,2019,ans,填空
From: https://www.cnblogs.com/hoyd/p/18071607

相关文章

  • 洛谷P6866 [COCI2019-2020#5] Emacs
    题目描述给定一个n×m 的只含有 . 和 * 的矩阵。矩阵中 * 形成一些不重叠的长方形。它们不在边缘或顶点接触。求长方形有多少个?输入格式第一行:两个正整数 n 和 m。以下 n 行:表示题目描述中的矩阵。矩阵只含有 . 和 *。输出格式一行一个非负整数,你的答......
  • 【蓝桥杯备赛】Day13:贪心算法(倒计时30天)
    题目1:题目3040:AnEasyProblem给定一个正整数N,求最小的、比N大的正整数M,使得M与N的二进制表示中有相同数目的1。举个例子,假如给定的N为78,其二进制表示为1001110,包含4个1,那么最小的比N大的并且二进制表示中只包含4个1的数是83,其二进制是1010011,因此83就是答案。输入格......
  • [极客大挑战 2019]BuyFlag1
    [极客大挑战2019]BuyFlag1审题菜单有一个home,一个payflag查看payflag中的要求具体有三个要求要有100000000块钱要是CUIT的学生回答正确的密码知识点http消息头的伪造解题抓包查看信息看到user=0,猜测这应该是CUIT的学生的判断条件更改为1。再次查看抓......
  • [RoarCTF 2019]Easy Calc 1
    [RoarCTF2019]EasyCalc1审题题目就是一个计算器。看到源代码有calc.php进入看到waf的源代码知识点RCE解题审核代码<?phperror_reporting(0);if(!isset($_GET['num'])){show_source(__FILE__);}else{$str=$_GET['num'];$blacklist=[......
  • [极客大挑战 2019]PHP 1
    [极客大挑战2019]PHP1审题猜测备份在www.zip中,输入下载文件。知识点反序列化解题查看代码看到index.php中包含了class.php,直接看class.php中的代码查看条件当username=admin,password=100时输出flag构造反序列化输入select中,得到flag。......
  • 文件上传[SUCTF 2019]CheckIn
    文件上传[SUCTF2019]CheckIn打开提交js图片马后台检测文件类型在木马出添加GIF89a绕过显示上传成功的地址uploads/f65a0ca982c669865231909b0ec85a0c上传.user.ini解马关于.user.ini和.htaccess后者有局限性,只能用于apache前者只要能运行php都可用auto_prepend_file......
  • 文件上传例题:[GXYCTF2019]BabyUpload
    文件上传例题:[GXYCTF2019]BabyUpload打开网址明显文件上传上传简单php马尝试后缀名过滤,使用BP抓包进行修改提示文件类型不对,修改成image/jpeg提示还是php,那换成js马<scriptlanguage="php">eval($_POST['cmd']);</script>上传成功解析php代码需要.htaccess文件在文......
  • 十五届蓝桥青少C++组3月评测2024年3月中高级
    STEMA考试C++中高级试卷(24年3月10日)一、选择题(50分)1:(110010)2+(c3)16的结果是()。*选择题严禁使用程序验证,选择题不答或答错都不扣分A.(240)10 B.(11110101)2 C.(366)8 D.(f6)16 备注:此题目下标代表进制,因不支持md格式。 参考答案:B2:表达式1000/3的结果......
  • 201912青少年软件编程(Scratch)等级考试试卷(一级)
    201912青少年软件编程(Scratch)等级考试试卷(一级)第1题:【单选题】关于造型和背景,下面说法不正确的是?A:造型编号从1开始B:有四个背景,删除第二个背景,背景编号为1,3,4C:只有一个背景时,不能删除这个背景D:角色可以有一个或多个造型【正确答案】:B【试题解析】 :第2题:【......
  • 第15届蓝桥杯青少组STEMA考试C++中高级真题试卷(2024年3月)编程题部分
    编程题第6题   问答题编程实现:寒假期间小明需要做完n张试卷,但他每天最多能做完m张,请计算出小明做完n张试卷最少需要多少天?输入描述一行输入两个整数n和m(1≤n≤100,1≤m≤10),分别表示要完成的试卷张数,及每天最多能做完的试卷张数,整数之间以一个空格隔开输出描述输出......