十进制转k进制
整数部分,不断做除法,并取余数,最后倒置。
小数部分,不断做乘法,并取出整数部分。
例题 AcWing 4484. 有限小数
#include<bits/stdc++.h> using namespace std; typedef long long LL; LL GCD(LL a,LL b) { if(a%b==0) return b; return GCD(b,a%b); } int main() { int n; cin>>n; while(n--) { LL a,b,c; cin>>a>>b>>c; LL gcd=GCD(a,b); a/=gcd;b/=gcd; gcd=GCD(b,c); while(gcd!=1) { while(b/gcd*gcd==b) b/=gcd; gcd=GCD(b,c); } if(b==1) cout<<"YES"<<endl; else cout<<"NO"<<endl; } }

浙公网安备 33010602011771号