数论经典题目

题目一:http://acm.hdu.edu.cn/showproblem.php?pid=2866

 

题意:在区间[2,L]内,有多少个素数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因子的数)

当gcd(n^(b-1),n+p)== (含有p因子的数)的时候,显然无解,因为假设有解,那么n=K*p , K^(b-1)*p^b*(K+1)

如果希望上面的==m^b,那么K^(b-1) *(K+1)必须能表示成某个数X的b次方,而gcd(K,K+1)=1,所以他们根本就没共同因

子,所以没办法表示成X的b次方,所以gcd(n^(b-1),n+p)=1

 

假设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,代上去就发现,p=(x+1)^b-x ^b。所以枚举x,然后判断p是否是素数即可。

 

 

题目四: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],定义:,求

 

通过构造矩阵可以解决:

 

 

然后有:降幂即可。

 

 

 

题目五:http://acm.hdu.edu.cn/showproblem.php?pid=3988

 

题意:给两个数n和k,找一个最大的i使得k^i能整除n!。这里的n与k都很大,10^18


分析:直接对K素因子分解,然后对于每一个素因子,找出在n!中的个数,然后对应相除,找最小的即可。


n!中素因子p的个数一定不会超过LL,这个可以由等比公式求和证明,然后直接素因子分解解决。

 

 

 

题目六:http://poj.openjudge.cn/practice/1046/

 

题意:给定正整数b,求最大的整数a,满足a*(a+b)为完全平方数,1 <= b <= 10^9

 

分析:设a,b的最大公约数为g,则g=gcd(a,b)=gcd(a,a+b)

那么有a*(a+b)=g^2*a1*(a1+b1),其中a1与b1互素,由于要为完全平方数,所以可以设x^2=a1,y^2=a1+b1  

进而推出:b1=y^2-x^2=(y-x)*(y+x)

 

现在我们令n=y+x,m=y-x,很明显n>m,由于a1与a1+b1互素,所以有gcd(x^2,y^2)=1,进而有gcd(x,y)=1

 

所以本题就可以这样做:先求出b的所有约数,这样g就等于b/(b的约数),然后又分别求出b的约数的约数,假设为arr2[j],

由于n>m,我们只需要枚举到sqrt(arr1[i])即可,然后解出x=(n-m)/2,y=(n+m)/2,但是前提是要保证都能整除,然后再

判断gcd(x,y)=1,两层for循环,记录最大值即可。由于因子一般不会很多,所以没有问题。

 

 

 

题目七:2013年通化邀请赛E题

题意:给三个数x,y,z的最大公约数gcd,最小公倍数lcm . 然后求满足的x,y,z有多少种可能。(1,3,2) 和 (1,2,3)被

视为不同。

 

分析:

首先lcm%gcd == 0是必须的,否则无解。

然后将tmp = lcm/gcd 进行因式分解。假设其中有一个质因子p1的幂为e1,那么着三个数中至少有一个含有p1,至少有一个

不含p1 。如果都含有p1的话他就被分到最大公约数里面去了,不会在tmp里面,如果不含有p1的话,那么p1就一定不会存在

了。

 

那么对于质因子p1来说 如果有两个含有他的话那么结果为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,求最小的正整数a满足65|f(x)

 

对f(x)=x(5*x^12+13*x^4+k*a)用费马小定理定理分析:


(1)如果x是65的倍数,那么已经符合65整除f(x)

(2)如果x是5的倍数,只要5*x^12+13*x^4+k*a被13整除即可,去掉13的倍数13*x^4,也即5*x^12+k*a被13

     整除,由费马小定理,5与13互质,13是质数,所以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的倍数,类似(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是奇素数。

 

分析:前面部分用二次剩余计算勒让德符号即可,后面部分构造矩阵即可。

 

即:

 

那么根据特征根为构造类似斐波那契数列。

 

得到:

 

 

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值