CF983A Finite or not?(数学)
Posted zh-comld
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF983A Finite or not?(数学)相关的知识,希望对你有一定的参考价值。
题意:给出分母,分子和进制,要求判断该数是否为有限小数。
Solution
表示并不知道怎么判断。
度娘:“一个分数在最简分数的情况下,如果它的分母只含有2和5两个质因数,这个分数就能化成有限小数.”。
感觉这个和进制有些关系,因为2和5恰好是进制10质因数分解后的结果。
那么问题变成了判断分母所含的质因数是否都为进制的质因数。
用辗转相处法求解。
注意最开始要讲分式化简(直接化简应该没有问题)。
Code
#include<iostream> #include<cstdio> using namespace std; typedef long long ll; ll p,q,b; int n,flag; ll gcd(ll a,ll b){return b?gcd(b,a%b):a;} int main(){ scanf("%d",&n); while(n--){ scanf("%lld%lld%lld",&p,&q,&b);flag=1; q/=gcd(q,p); while(q!=1){ ll x=gcd(q,b); q/=x;b=x; if(q!=1&&b==1){ printf("Infinite "); flag=0; break; } } if(flag)printf("Finite "); } return 0; }
以上是关于CF983A Finite or not?(数学)的主要内容,如果未能解决你的问题,请参考以下文章
codeforces 984 C. Finite or not?
C. Finite or not? Codeforces Round #483 (Div. 2)
Codeforces Round #483 (Div. 2) C.Finite or not? 关于欧几里得的应用