【HDU2685】I won't tell you this is about number theory
2017-07-21 15:05
447 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2685
题解:
这道题的题目背景是我见过最美妙最简洁最通俗易懂的题目背景
要知道一个公式
gcd(Am−Bm,An−Bn)=Agcd(m,n)−Bgcd(m,n)
这里B=1
证明过程:
由乘法公式(x-y)(x^(k-1)+x^(k-2)y+…+y^(k-1)) = x^k-y^k,
可知a^(m,n)-b^(m,n) | a^m-b^m, a^(m,n)-b^(m,n) | a^n-b^n,
进而有a^(m,n)-b^(m,n) | (a^m-b^m,a^n-b^n).
只需再证明(a^m-b^m,a^n-b^n) | a^(m,n)-b^(m,n).
设c = (a^m-b^m,a^n-b^n), 则(c,b) = 1.
若不然, 设质数p | (c,b), 由p | b, p | c | a^m-b^m得p | a^m.
可得p | a, p | (a,b), 与(a,b) = 1矛盾, 故(c,b) = 1.
设d = (m,n), 由Bezout定理, 存在正整数u, v, 使um-vn = (m,n) = d.
由c | a^n-b^n, 有c | a^(vn)-b^(vn), 进而c | a^d·(a^(vn)-b^(vn)) = a^(um)-a^d·b^(vn).
而由c | a^m-b^m, 有c | a^(um)-b^(um).
相减得c | a^d·b^(vn)-b^(um) = (a^d-b^d)·b^(vn).
但(c,b) = 1, 于是c | a^d-b^d, 即(a^m-b^m,a^n-b^n) | a^(m,n)-b^(m,n).
题解:
这道题的题目背景是我见过最美妙最简洁最通俗易懂的题目背景
要知道一个公式
gcd(Am−Bm,An−Bn)=Agcd(m,n)−Bgcd(m,n)
这里B=1
证明过程:
由乘法公式(x-y)(x^(k-1)+x^(k-2)y+…+y^(k-1)) = x^k-y^k,
可知a^(m,n)-b^(m,n) | a^m-b^m, a^(m,n)-b^(m,n) | a^n-b^n,
进而有a^(m,n)-b^(m,n) | (a^m-b^m,a^n-b^n).
只需再证明(a^m-b^m,a^n-b^n) | a^(m,n)-b^(m,n).
设c = (a^m-b^m,a^n-b^n), 则(c,b) = 1.
若不然, 设质数p | (c,b), 由p | b, p | c | a^m-b^m得p | a^m.
可得p | a, p | (a,b), 与(a,b) = 1矛盾, 故(c,b) = 1.
设d = (m,n), 由Bezout定理, 存在正整数u, v, 使um-vn = (m,n) = d.
由c | a^n-b^n, 有c | a^(vn)-b^(vn), 进而c | a^d·(a^(vn)-b^(vn)) = a^(um)-a^d·b^(vn).
而由c | a^m-b^m, 有c | a^(um)-b^(um).
相减得c | a^d·b^(vn)-b^(um) = (a^d-b^d)·b^(vn).
但(c,b) = 1, 于是c | a^d-b^d, 即(a^m-b^m,a^n-b^n) | a^(m,n)-b^(m,n).
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define LL long long using namespace std; LL a,n,m,k; LL gcd(LL x,LL y) { return (!y)?x:gcd(y,x%y); } LL ksm(LL a,LL b,LL mod) { LL ans=1; while(b) { if(b&1) ans=(ans*a)%mod; a=(a*a)%mod; b>>=1; } return ans % mod; } int main() { int t; cin>>t; while(t--) { scanf("%lld%lld%lld%lld",&a,&n,&m,&k); LL GCD=gcd(m,n); printf("%lld\n",(ksm(a,GCD,k)-1+k)%k); } return 0; }
相关文章推荐
- HDU 2685 I won't tell you this is about number theory
- HDU 2685 I won't tell you this is about number theory 数学结论
- 数论基础定理及其应用(hdu 2685 I won't tell you this is about number theory, hdu 2582 f(n),hdu 1792 A New Chan)
- HDU 2685 I won't tell you this is about number theory
- I won't tell you this is about graph theory----zjfc bellman-ford算法与spfa算法
- HDU 4627 There are many unsolvable problem in the world.It could be about one or about zero.But this time it is about bigger number.
- 欺诈邮件:You've won a Microsoft X-Box (This is not spam)
- maven No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
- The goal you specified requires a project to execute but there is no POM in this directory...
- No compiler is provided in this environment. Perhaps you are running on a JRK
- android.util.AndroidRuntimeException Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? com.uethinking.microvideo.manag
- warning: its scope is only this definition or declaration, which is not what you want
- this is a good article guide you devolop with maven & jetty
- PL/SQL Warning “This is the trial version of PL/SQL Developer You’ve got 5 day(s) left!”
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
- Unable to start debugging on the web server. You do not have permission to debug the application. The URL for this project is in
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 问题
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK
- Light is falling on a tree from left side you have to find all the nodes on which this light will fa
- The goal you specified requires a project to execute but there is no POM in this directory