数论经典题目
題目一:http://acm.hdu.edu.cn/showproblem.php?pid=2866
?
題意:在區(qū)間[2,L]內(nèi),有多少個素數(shù)p,滿足方程有解。
?
分析:n^b + p*n^(b-1) = m^b?? ==>???n^(b-1)*[n+p]=m^b
因為n里面要么有p因子,要么沒有,所以gcd(n^(b-1),n+p)=1或(含有p因子的數(shù))
當gcd(n^(b-1),n+p)== (含有p因子的數(shù))的時候,顯然無解,因為假設(shè)有解,那么n=K*p , K^(b-1)*p^b*(K+1)
如果希望上面的==m^b,那么K^(b-1) *(K+1)必須能表示成某個數(shù)X的b次方,而gcd(K,K+1)=1,所以他們根本就沒共同因
子,所以沒辦法表示成X的b次方,所以gcd(n^(b-1),n+p)=1
?
假設(shè)n=x^b,n+p=y^b,那么顯然m=x^(b-1)*y,而p=y^b-x^b
?
顯然(y-x)|p,那么必須有y-x=1,所以y=x+1,代上去就發(fā)現(xiàn),p=(x+1)^b-x ^b。所以枚舉x,然后判斷p是否是素數(shù)即可。
?
?
題目四:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=3012
?
題意:f[1]=1,f[2]=2,f[n]=f[n-1]+f[n-2],定義:,求
?
通過構(gòu)造矩陣可以解決:
?
?
然后有:降冪即可。
?
?
?
題目五:http://acm.hdu.edu.cn/showproblem.php?pid=3988
?
題意:給兩個數(shù)n和k,找一個最大的i使得k^i能整除n!。這里的n與k都很大,10^18
分析:直接對K素因子分解,然后對于每一個素因子,找出在n!中的個數(shù),然后對應(yīng)相除,找最小的即可。
n!中素因子p的個數(shù)一定不會超過LL,這個可以由等比公式求和證明,然后直接素因子分解解決。
?
?
?
題目六:http://poj.openjudge.cn/practice/1046/
?
題意:給定正整數(shù)b,求最大的整數(shù)a,滿足a*(a+b)為完全平方數(shù),1 <= b <= 10^9
?
分析:設(shè)a,b的最大公約數(shù)為g,則g=gcd(a,b)=gcd(a,a+b)
那么有a*(a+b)=g^2*a1*(a1+b1),其中a1與b1互素,由于要為完全平方數(shù),所以可以設(shè)x^2=a1,y^2=a1+b1??
進而推出:b1=y^2-x^2=(y-x)*(y+x)
?
現(xiàn)在我們令n=y+x,m=y-x,很明顯n>m,由于a1與a1+b1互素,所以有g(shù)cd(x^2,y^2)=1,進而有g(shù)cd(x,y)=1
?
所以本題就可以這樣做:先求出b的所有約數(shù),這樣g就等于b/(b的約數(shù)),然后又分別求出b的約數(shù)的約數(shù),假設(shè)為arr2[j],
由于n>m,我們只需要枚舉到sqrt(arr1[i])即可,然后解出x=(n-m)/2,y=(n+m)/2,但是前提是要保證都能整除,然后再
判斷gcd(x,y)=1,兩層for循環(huán),記錄最大值即可。由于因子一般不會很多,所以沒有問題。
?
?
?
題目七:2013年通化邀請賽E題
題意:給三個數(shù)x,y,z的最大公約數(shù)gcd,最小公倍數(shù)lcm . 然后求滿足的x,y,z有多少種可能。(1,3,2) 和 (1,2,3)被
視為不同。
?
分析:
首先lcm%gcd == 0是必須的,否則無解。
然后將tmp = lcm/gcd 進行因式分解。假設(shè)其中有一個質(zhì)因子p1的冪為e1,那么著三個數(shù)中至少有一個含有p1,至少有一個
不含p1 。如果都含有p1的話他就被分到最大公約數(shù)里面去了,不會在tmp里面,如果不含有p1的話,那么p1就一定不會存在
了。
?
那么對于質(zhì)因子p1來說 如果有兩個含有他的話那么結(jié)果為A(3,2)*(e1 - 1) ?e1可以分成x ,y (x+y = e1 x!=0 && y !
= 0),如果有一個含有它的話那么必定是含有p1^e1次方。如果不是p1^e1次方的話,那么tmp里面的p1的冪也就不是e1了。
?
?
?
題目八:http://acm.hdu.edu.cn/showproblem.php?pid=1098
?
題意:對于f(x)=5*x^13+13*x^5+k*a*x,給定k,求最小的正整數(shù)a滿足65|f(x)
?
對f(x)=x(5*x^12+13*x^4+k*a)用費馬小定理定理分析:
(1)如果x是65的倍數(shù),那么已經(jīng)符合65整除f(x)
(2)如果x是5的倍數(shù),只要5*x^12+13*x^4+k*a被13整除即可,去掉13的倍數(shù)13*x^4,也即5*x^12+k*a被13
???? 整除,由費馬小定理,5與13互質(zhì),13是質(zhì)數(shù),所以x^(13-1)模13余1,
? ? ?所以5*x^12模13余5,要使5*x^12+k*a被13整除,k*a必須模13余8(k*a≡8(mod?13))
(3)如果x是13的倍數(shù),類似(2),需要13*x^4+k*a被5整除,由費馬小定理類似得到x^4模5余1,所以
? ? ?13*x^4模5余3,k*a必須模5余2(k*a≡2(mod?5))
(4)如果x不含5和13這兩個因子,則需要5*x^12+13*x^4+k*a被65整除了,等價于既要被5整除,又要被13整
?????除,就相當于以上(2)(3)兩種情況的條件要同時滿足,所以有k*a≡2(mod?5)?并且?k*a≡8(mod?13)
? ? ?然后中國剩余定理。
?
?
題目十:http://acm.hdu.edu.cn/showproblem.php?pid=3802
?
題意:求表達式的值,p是奇素數(shù)。
?
分析:前面部分用二次剩余計算勒讓德符號即可,后面部分構(gòu)造矩陣即可。
?
即:
?
那么根據(jù)特征根為和構(gòu)造類似斐波那契數(shù)列。
?
得到:
?
?
總結(jié)
- 上一篇: HDU1058 Humble Numbe
- 下一篇: 特殊方法求1~n的和