HDU 4320 Arcane Numbers 1(12年多校3-数学)
来源:互联网 发布:苹果软件购买记录 编辑:程序博客网 时间:2024/06/05 01:53
题目链接:Click here~~
题意:
给你任意一个 p 进制下有限位数的数 n,问是否一定能转化成 q 进制下有限位数的数字 m。
解题思路:
显然若 n 为整数,一定可以,那么我们下面分析一下 n 含小数的情况。
设 n 的小数部分为 x,且小数部分共 k 位,第 i 位上的数字为 ai。
那么我们可以将 x 表示成下面式子的形式:
。
而在进制转化中,整数部分是“除基倒取余”,小数部分是“乘基正取整”,且乘到小数部分为0时截止。
于是问题转化成了 x 在什么时候小数部分“乘基”一定会变成0。
由 x 的表达式我们可知,当且仅当乘数中含有 p^k 这个因子时,x 的小数部分才为0。
那么就相当于判断 q^h 中是否含有 p^k 这个因子(h 可无限大)。
又由算术基本定理,p^k 中的质因子一定和 p 中的相同。
所以只要 q 中包含 p 的所有质因子,就必定存在 h 使得 q^h 中包含 p^k 这个因子,从而使问题有解。
那么,如何判断 q 中是否包含 p 的所有质因子呢?
1、若 p 和 q 不互质,则只需要判断 q 中是否包含 p/gcd(p,q) 的所有质因子。
2、若 p 和 q 互质,当且仅当 p = 1 时,q 中包含 p 的所有质因子。
#include <stdio.h>__int64 gcd(__int64 a,__int64 b){ return b ? gcd(b,a%b) : a;}int main(){ int z,ncase = 0; __int64 a,b,t; scanf("%d",&z); while(z--) { scanf("%I64d%I64d",&a,&b); while((t=gcd(a,b)) != 1) a /= t; printf("Case #%d: ",++ncase); puts(a-1?"NO":"YES"); }return 0;}
- HDU 4320 Arcane Numbers 1(12年多校3-数学)
- hdu 4320 Arcane Numbers 1
- hdu 4320 Arcane Numbers 1
- HDU - 4320 Arcane Numbers 1
- HDU 4320 Arcane Numbers 1
- HDU 4320 Arcane Numbers 1
- hdu - 4320 - Arcane Numbers 1 - 想法题
- HDU 4320 Arcane Numbers 1 (数论)
- HDU 4320 - Arcane Numbers 1 / SWUN 1429 - 进制转化
- hdu 4320 Arcane Numbers 1 多校联合赛(三)第一题
- hdu 4320 Arcane Numbers 1(小数进制转化后是否有限位)
- hdu - 4321 - Arcane Numbers 2 - 数位统计
- 2012 Multi-University Training Contest 3:Arcane Numbers 1
- hdu4320 Arcane Numbers 1(小数进制转换)
- HDU-5585 Numbers(数学)
- HDU 4321 Arcane Numbers 2 按位处理, 想法计数题
- hdu 5505 GT and numbers(数学规律)
- poj3252Round Numbers(数学问题)
- JTabbedPane添加关闭按钮和缩略图 .
- 12个有趣的C语言面试题
- Spring源码分析-资源定位(一)
- Linux下向SVN服务器添加新文件步骤
- HDU 4143 A Simple Problem
- HDU 4320 Arcane Numbers 1(12年多校3-数学)
- jsp页面中文乱码(初学者)
- android SurfaceView实现人物动画
- jquery mobile phonegap中页面跳转白屏及抖动的解决办法<script src="http://code.jquery.com/jquery-1.6.4.min.js"></scri
- pthread2 pthread_mutex_lock
- 黑马程序员---java面向对象思想
- 关于数据库排名函数的使用
- MFC使用NotifyIcon托盘应用程序
- css3