[POJ3696]The Luckiest number(数论)
题目: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,所以肯定不存在样的解
然后就解决了……
[POJ3696]The Luckiest number(数论)的更多相关文章
- POJ3696 The Luckiest number
题意 Language:Default The Luckiest number Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7 ...
- POJ3696:The Luckiest number(欧拉函数||求某数最小的满足题意的因子)
Chinese people think of '8' as the lucky digit. Bob also likes digit '8'. Moreover, Bob has his own ...
- POJ3696 The Luckiest Number 欧拉定理
昨天终于把欧拉定理的证明看明白了...于是兴冲冲地写了2道题,发现自己啥都不会qwq 题意:给定一个正整数L<=2E+9,求至少多少个8连在一起组成正整数是L的倍数. 这很有意思么... 首先, ...
- poj 3696 The Luckiest Number
The Luckiest Number 题目大意:给你一个int范围内的正整数n,求这样的最小的x,使得:连续的x个8可以被n整除. 注释:如果无解输出0.poj多组数据,第i组数据前面加上Case ...
- POJ_3696 The Luckiest number 【欧拉定理+同余式+对取模的理解】
一.题目 Chinese people think of '8' as the lucky digit. Bob also likes digit '8'. Moreover, Bob has his ...
- poj_3696_The Luckiest number
Chinese people think of '8' as the lucky digit. Bob also likes digit '8'. Moreover, Bob has his own ...
- HDU 2462 The Luckiest number
The Luckiest number Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Ori ...
- The Luckiest number(hdu2462)
The Luckiest number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- 「POJ3696」The Luckiest number【数论,欧拉函数】
# 题解 一道数论欧拉函数和欧拉定理的入门好题. 虽然我提交的时候POJ炸掉了,但是在hdu里面A掉了,应该是一样的吧. 首先我们需要求的这个数一定可以表示成\(\frac{(10^x-1)}{9}\ ...
随机推荐
- Swift方法实现回调的一种方式
记录一下: 封装了一个类,暴露出的一个方法,在外部引用时,给出回调blcok 封装类: //MARK:登录 public func loginWithToken(token:String,loginS ...
- Swift实现截屏并保存相册
func saveToLocal() { //截屏 let screenRect = UIScreen.mainScreen().bounds UIGraphicsBeginImageContext( ...
- 虚拟机centos6.5 --ssh免密码登录
说明:此处是以hadoop虚拟机3台机器为背景进行设置,即master.slave01.slave02 1.在master上,生成公钥.私钥 用hadoop用户登录系统,进入个人主目录,即/home/ ...
- Linux学习书籍推荐
入门书: <鸟哥的私房菜(基础篇)> <鸟哥的私房菜(服务篇)> <Linux命令行与Shell脚本编程大全(第2版)> <UNIX/Linux 系统管理技术 ...
- js实现打开网页自动弹出添加QQ好友邀请窗口
我们有时进一些网面或专题页面会自动弹出一个加为好友的对话框了,在研究了很久之后发现可以直接使用js来实现,下面我们一起来看js实现打开网页自动弹出添加QQ好友邀请窗口的方法. 第一步.JS脚本 这个是 ...
- BFC 小结
最近对一些基础知识进行了整理,下面是针对 BFC 的一些整理以及本人对 BFC 的一些理解. 1. 首先,什么是 BFC 呢? BFC,Block formatting context,直译为&quo ...
- Java Web开发之分页(ajax)
1.需要用到的jar包.js文件 JSONArray().fromObject()需要的jar包: (1)commons-beanutils-1.8.3.jar (2)commons-collecti ...
- Java的各种工具类
下面是java的各种工具,包括获取时间和时间比较,检验集合和字符串是否为空和长度大小等等 1 import java.io.BufferedReader; import java.io.File; i ...
- reflect2015破解
具体看 http://download.congci.com/download/net-reflector-7-6-1-824-wanquan-pojie#downloads *博主注:因为很多破解程 ...
- codevs[1300]文件排版
Description 写电子邮件是有趣的,但不幸的是经常写不好看,主要是因为所有的行不一样长,你的上司想要发排版精美的电子邮件,你的任务是为他编写一个电子邮件排版程序. 完成这个任务最简单的办法是在 ...