[POJ3696]The Luckiest number(数论)
2015-02-06 23:25
260 查看
题目:http://poj.org/problem?id=3696
题意:给你一个数字L,你要求出一个数N,使得N是L的倍数,且N的每位数都必须是8,输出N的位数(如果不存在输出0)
分析:
首先我们假设N是x个8组成的
那么88888...888=kL
提个8出来:8*111..1111=kL ①
因为题目只要求x的值,所以要弄出关于x的方程
11...111可以写成(10^k-1)/9
于是①变成了8(10^x-1)=9kL ②
再来回顾下题目,②式中x和k是变量,且都属于正整数,要根据②式求出最小的x
这不是一般的二元一次不定方程,这里的x在指数上
编程里面能解未知数在指数上面的这类方程的东西只有什么???是的只有这个式子:10^x=1(mod q)
于是想办法把②往这种形式上靠
可以这样变形8(10^x-1)/gcd(L,8)=9kL/gcd(L,8)
设p=8/gcd(L,8),q=L/gcd(L,8)
则p(10^x-1)=kq且p,q互质
那么肯定有10^x-1=0(mod q)
即10^x=1(mod q) ③
很明显如果gcd(10,q)=1,那么肯定可以,比如果x=φ(q),当然,要求最小,就枚举φ(q)因数
如果gcd(10,q)=d(d不是1),那么有10^x % d=0,不妨设md=10^x,设q=nd则10^x%q=md % nd=md-y(nd)=d(m-yn)一定是d的倍数,而不是1,所以肯定不存在样的解
然后就解决了……
题意:给你一个数字L,你要求出一个数N,使得N是L的倍数,且N的每位数都必须是8,输出N的位数(如果不存在输出0)
分析:
首先我们假设N是x个8组成的
那么88888...888=kL
提个8出来:8*111..1111=kL ①
因为题目只要求x的值,所以要弄出关于x的方程
11...111可以写成(10^k-1)/9
于是①变成了8(10^x-1)=9kL ②
再来回顾下题目,②式中x和k是变量,且都属于正整数,要根据②式求出最小的x
这不是一般的二元一次不定方程,这里的x在指数上
编程里面能解未知数在指数上面的这类方程的东西只有什么???是的只有这个式子:10^x=1(mod q)
于是想办法把②往这种形式上靠
可以这样变形8(10^x-1)/gcd(L,8)=9kL/gcd(L,8)
设p=8/gcd(L,8),q=L/gcd(L,8)
则p(10^x-1)=kq且p,q互质
那么肯定有10^x-1=0(mod q)
即10^x=1(mod q) ③
很明显如果gcd(10,q)=1,那么肯定可以,比如果x=φ(q),当然,要求最小,就枚举φ(q)因数
如果gcd(10,q)=d(d不是1),那么有10^x % d=0,不妨设md=10^x,设q=nd则10^x%q=md % nd=md-y(nd)=d(m-yn)一定是d的倍数,而不是1,所以肯定不存在样的解
然后就解决了……
相关文章推荐
- Poj-3696 The Luckiest number(数论)
- poj 3696 The Luckiest number (数论-快速幂+欧拉定理)
- POJ 3696 The Luckiest number(数论)
- 【原创】【数论】HDU 2462 The Luckiest number
- 【POJ3696】The Luckiest Number-欧拉定理+快速幂
- POJ3696:The Luckiest number (欧拉定理)
- POJ 3696 The Luckiest number(08合肥 数论)
- poj 3696 The Luckiest number——数论 (快速幂取模,乘法取模模版)
- POJ The Luckiest number 3696 数论(处理快速幂过程中超int64的情况)
- poj3696 The Luckiest number By Assassin
- POJ3696 The Luckiest number【欧拉函数】
- POJ3696:The Luckiest number(欧拉函数||求某数最小的满足题意的因子)
- POJ 3696 : The Luckiest number - 欧拉函数,快速幂[数论好题]
- POJ 3696/ HDU 2462 The Luckiest number (数论)
- 【hdu2462】【数论】【欧拉函数+欧拉定理+大数快速幂】The Luckiest number
- POJ 3696 The Luckiest number (欧拉函数,好题)
- POJ 3696 The Luckiest number(欧拉定理妙妙妙)
- The Luckiest number POJ - 3696 (欧拉函数)
- POJ 3696 The Luckiest number 推理~~难
- POJ 3696 The Luckiest number (整数的阶+欧拉定理)