HDU 1098 Ignatius's puzzle 费马小定理+扩展欧几里德算法
题目大意:
给定k,找到一个满足的a使任意的x都满足 f(x)=5*x^13+13*x^5+k*a*x 被65整除
推证:
f(x) = (5*x^12 + 13 * x^4 + ak) * x
因为x可以任意取 那么不能总是满足 65|x
那么必须是 65 | (5*x^12 + 13 * x^4 + ak)
那么就是说 x^12 / 13 + x^4 / 5 + ak / 65 正好是一个整数
假设能找到满足的a , 那么将 ak / 65 分进x^12 / 13 + x^4 / 5中得到 (x^12+t1 ) / 13 + (x^4+t2) / 5 这两项均为整数
那么5*t1+13*t2 = ak
而这里 13|(x^12+t1 ) 5| (x^4+t2)
这里13 , 5均是素数
根据费马小定理可得 x^12 = 1 mod13 x^4 = 1 mod 5
那么t1 = 12 + 13*k1 , t2 = 4 + 5*k2
将t1 t2带入5*t1+13*t2 = ak
那么就是5*(12 + 13*k1) +13*(4 + 5*k2) = ak
->65(k1+k2)+112 = ak
这里k已知 , 求a看做y , k1+k2为整数,看成是x即可
那么就是求65x+ay=-112
这里就是求扩展欧几里得了
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <ctime>
#include <cstdlib>
#include <vector> using namespace std;
#define ll long long
#define N 500
#define pii pair<int,int> void ex_gcd(ll a , ll b , ll &x , ll &y , ll &d)
{
ll t;
if(b==){d=a,x=,y=;}
else{
ex_gcd(b , a%b , x , y , d);
t=x , x=y , y=t-a/b*y;
}
} int main() {
// freopen("a.in" , "r" , stdin);
// freopen("out.txt" , "w" , stdout);
int a;
while(~scanf("%d" , &a)){
ll x , y , d;
ex_gcd((ll) , (ll)a , x , y , d);
if(%d!=) puts("no");
else{
printf("%I64d\n" , ((/d*y%)+)%);
}
}
}
HDU 1098 Ignatius's puzzle 费马小定理+扩展欧几里德算法的更多相关文章
- hdu 4704 Sum(组合,费马小定理,快速幂)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4704: 这个题很刁是不是,一点都不6,为什么数据范围要开这么大,把我吓哭了,我kao......说笑的, ...
- HDU 4704 Sum (隔板原理 + 费马小定理)
Sum Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/131072K (Java/Other) Total Submiss ...
- hdu 4704 Sum【组合数学/费马小定理/大数取模】By cellur925
首先,我们珂以抽象出S函数的模型:把n拆成k个正整数,有多少种方案? 答案是C(n-1,k-1). 然后发现我们要求的是一段连续的函数值,仔细思考,并根据组合数的性质,我们珂以发现实际上答案就是在让求 ...
- 简记乘法逆元(费马小定理+扩展Euclid)
乘法逆元 什么是乘法逆元? 若整数 \(b,m\) 互质,并且\(b|a\) ,则存在一个整数\(x\) ,使得 \(\frac{a}{b}\equiv ax\mod m\) . 称\(x\) 是\( ...
- 数论 --- 费马小定理 + 快速幂 HDU 4704 Sum
Sum Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=4704 Mean: 给定一个大整数N,求1到N中每个数的因式分解个数的 ...
- HDU 4704 Sum(隔板原理+组合数求和公式+费马小定理+快速幂)
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=4704 Problem Description Sample Input 2 Sample Outp ...
- hdu 4704(费马小定理)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4704 思路:一道整数划分题目,不难推出公式:2^(n-1),根据费马小定理:(2,MOD)互质,则2^ ...
- HDU 5667 Sequence【矩阵快速幂+费马小定理】
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5667 题意: Lcomyn 是个很厉害的选手,除了喜欢写17kb+的代码题,偶尔还会写数学题.他找到 ...
- hdu 4549 M斐波那契数列(快速幂 矩阵快速幂 费马小定理)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4549: 题目是中文的很容易理解吧.可一开始我把题目看错了,这毛病哈哈. 一开始我看错题时,就用了一个快速 ...
随机推荐
- Java Date,long,String 日期转换
1.java.util.Date类型转换成long类型java.util.Date dt = new Date();System.out.println(dt.toString()); //java. ...
- Sqlserver_sql注入
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进 ...
- java中运算符的解析和计算
package com.LBH; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import j ...
- 设置DIV最小高度以及高度自适应随着内容的变化而变化
<!--退租账单--> <div id="bilsli" onmouseover="showBill(this)"> #bilsli{ ...
- 5.7 WebDriver API实例讲解
本节主要详细描述WebDriver的常用API使用方法. 1.访问某网页地址 被测试网页的网址:http://www.sogou.com. Java语言版本的API实例代码: 方法1: public ...
- 重启Apache报错apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ... waiting的解决方法
启动apache提示 : apache2: Could not reliably determine the server's fully qualified domain name, using 1 ...
- hdu-----(3746)Cyclic Nacklace(kmp)
Cyclic Nacklace Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- HDUOJ--汉诺塔II
汉诺塔II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- mvc伪静态<三> IIS配置
上一篇已经已经讲述了mvc伪静态的代码实现. 下面以IIS 7.5为例演示一下IIS如何配置才能在服务器显示.html的伪静态 一.进入IIS,选择处理程序映射 二添加脚本映射 三根据你的处理程序的版 ...
- 关于html中table表格tr,td的高度和宽度
关于html中table表格tr,td的高度和宽度 关于html中table表格tr,td的高度和宽度 做网页的时候经常会遇到各种各样的问题,经常遇到的一个就是会碰到表格宽度对不齐的问题.首先,来分析 ...