CF 984C Finite or not? (数论)

给定T(T<=1e5)组数据,每组数据给出十进制表示下的整数p,q,b,求问p/q在b进制意义下是否是有限小数。

首先我们先把p/q约分一下。类比一下b=10的情况,我们发现约分后,只有当q的因数仅有2的倍数和5的倍数时,p/q才是有限小数。于是这启发我们猜结论:仅当q的质因数集合包含在b的质因数集合内时,p/q在b进制下才是有限小数。

那么现在问题就被转换为了:已知两数q,b,问q的质因数集合是否完全包含在b的中。

设\(b=p_1^{k_1}p_2^{k_2}...p_n^{k_n}*C\),\(q=p_1^{c_1}p_2^{c_2}...p_n^{c_n}*D\),且\(\{p_i,\ i\le n\}\)是q与b个数最多的共同质因数集合。那么我们要想办法把q中的\(p_i\)给去掉,使q只剩下D。由于\(k_i>0\),\(c_i>0\),那么设\(b'=(b, q)\),那么不停将\(b'\)除\(q\)得到\(q'\),最后剩下的数就是D。现在只需判断D是否为1即可。

#include <cstdio>
using namespace std; typedef long long LL;
LL T, p, q, b; LL gcd(LL x, LL y){ return y?gcd(y, x%y):x; } int main(){
scanf("%lld", &T); LL t;
while (T--){
scanf("%lld%lld%lld", &p, &q, &b);
t=gcd(p, q); p/=t; q/=t;
//现在问题转化为求q的质因数集合是否被包含在b的内
b=gcd(q, b); LL lq=0;
while (q!=lq){
lq=q;
q/=gcd(q, b);
}
if (q==1) puts("Finite"); else puts("Infinite");
}
return 0;
}

CF 984C Finite or not? (数论)的更多相关文章

  1. cf C. Finite or not? 数论

    You are given several queries. Each query consists of three integers pp, qq and bb. You need to answ ...

  2. CF 980D Perfect Groups(数论)

    CF 980D Perfect Groups(数论) 一个数组a的子序列划分仅当这样是合法的:每个划分中的任意两个数乘积是完全平方数.定义a的权值为a的最小子序列划分个数.现在给出一个数组b,问权值为 ...

  3. CodeForces - 984C——Finite or not?分数整除问题(数论,gcd)

    题目传送门 题目描述:给你一个p/q,让你求在b进制下,这个小数是不是有限小数. 思路: 先来膜拜一个大神的博客,如何求小数的二进制表达,(感谢博主肘子zhouzi).然后小数的其他进制表达也一样. ...

  4. 【cf 483 div2 -C】Finite or not?(数论)

    链接:http://codeforces.com/contest/984/problem/C 题意 三个数p, q, b, 求p/q在b进制下小数点后是否是有限位. 思路 题意转化为是否q|p*b^x ...

  5. CodeForces 984C Finite or not?

    http://codeforces.com/problemset/problem/984/C Time limit    1000 msMemory limit    262144 kB 题目 You ...

  6. CF 371B Fox Dividing Cheese[数论]

    B. Fox Dividing Cheese time limit per test 1 second memory limit per test 256 megabytes input standa ...

  7. CF984 C. Finite or not?【数论/GCD】

    [链接]:CF [题意]:n组样例,对于每组样例,给你三个数p q b,问你p/q在b进制下是不是一个有限小数,是的话输出Finite,否则输出Infinite. [分析]:b的过程是对q约分,那么只 ...

  8. 【数论】Codeforces Round #483 (Div. 2) [Thanks, Botan Investments and Victor Shaburov!] C. Finite or not?

    题意:给你一个分数,问你在b进制下能否化成有限小数. 条件:p/q假如已是既约分数,那么如果q的质因数分解集合是b的子集,就可以化成有限小数,否则不能. 参见代码:反复从q中除去b和q的公因子部分,并 ...

  9. cf 450b 矩阵快速幂(数论取模 一大坑点啊)

    Jzzhu has invented a kind of sequences, they meet the following property: You are given x and y, ple ...

随机推荐

  1. cout是右结合的

    cout是右结合的,(从右到左压栈?) cout<<++a<<","<<a++;  的运行顺序是 1.a的值压栈 2.a自加 3.‘,’压栈 4 ...

  2. sqlserver 新建只读权限用户

    1,新建只能访问某一个表的只读用户. --添加只允许访问指定表的用户:execsp_addlogin'用户名','密码','默认数据库名' --添加到数据库execsp_grantdbaccess'用 ...

  3. 1068 Find More Coins (30)(30 分)

    Eva loves to collect coins from all over the universe, including some other planets like Mars. One d ...

  4. ACM学习历程—51NOD1028 大数乘法V2(FFT)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1028 题目大意就是求两个大数的乘法. 但是用普通的大数乘法,这 ...

  5. CQOI2018做题记录

    T1.破解D-H协议 传送门 这个题就是BSGS的板子题-- 然后这里补充一点嘛,就是第二重循环的枚举范围.我们是在枚举\(a^{tm-y}\),把tm换成i,这个的最大值就是\(i - (m - 1 ...

  6. codevs 3372 选学霸

    3372 选学霸  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master 题目描述 Description 老师想从N名学生中选M人当学霸,但有K对人实力相当,如果 ...

  7. UnityShader实例15:屏幕特效之Bloom

    http://blog.csdn.net/u011047171/article/details/48522073 Bloom特效       概述        Bloom,又称“全屏泛光”,是游戏中 ...

  8. What is Photon Server?

    http://blog.csdn.net/menuconfig/article/details/8215033 Photon Server是一套套裝的遊戲伺服器,以往開發線上遊戲都必需自行花費大筆的研 ...

  9. 一次spark卡顿分析

    在104上面执行,经常会发生卡到了如下一句话: storage.BlockManagerInfo: Added broadcast_8_piece0 当再次卡顿的时候,我直接退出,然后通过yarn看后 ...

  10. bzoj 4816 数字表格 —— 反演

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4816 推导过程同:http://www.cnblogs.com/zhouzhendong/p ...