zoukankan      html  css  js  c++  java
  • 【数论】Codeforces Round #483 (Div. 2) [Thanks, Botan Investments and Victor Shaburov!] C. Finite or not?

    题意:给你一个分数,问你在b进制下能否化成有限小数。

    条件:p/q假如已是既约分数,那么如果q的质因数分解集合是b的子集,就可以化成有限小数,否则不能。

    参见代码:反复从q中除去b和q的公因子部分,并缩小该公因子,继续尝试。直到q没有和b的公共因子为止,如果q变成了1,那么有限,否则无限。

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    typedef long long ll;
    int T;
    ll q,p,b;
    int main(){
    	scanf("%d",&T);
    	for(;T;--T){
    		scanf("%I64d%I64d%I64d",&p,&q,&b);
    		if(p==q || p==0ll || q/__gcd(p,q)==1ll){
    			puts("Finite");
    			continue;
    		}
    		q/=__gcd(p,q);
    		ll g=__gcd(b,q);
    		while(g!=1){
    			q/=g;
    			g=__gcd(g,q);
    		}
    		if(q==1ll){
    			puts("Finite");
    		}
    		else{
    			puts("Infinite");
    		}
    	}
    	return 0;
    }
  • 相关阅读:
    svg文件使用highmap显示
    动静分离
    angular 零碎
    使用doxmate生成文档
    javascript之console篇
    java 中String与StringBuilder 效率
    highcharts 组合chart
    js 攻坚克难
    html base 又一重大发现
    sql 分析 依赖beanutils
  • 原文地址:https://www.cnblogs.com/autsky-jadek/p/9044840.html
Copyright © 2011-2022 走看看