C++怎样判断两个数相除是否“除尽”,(不是整除)
例如:1/3=0.333333…… 除不尽;
1/5 =0.2 能除尽。
如何判断两个数能否除尽? https://blog.csdn.net/qq_31029351/article/details/53677897 newu 发表于 2019-6-24 15:20
https://blog.csdn.net/qq_31029351/article/details/53677897
他这个不对吧,没做任何判断怎么就printf("m/n 是一个有限不循环小数 0."); 菜鸟小乔 发表于 2019-6-24 19:13
他这个不对吧,没做任何判断怎么就printf("m/n 是一个有限不循环小数 0.");
这个确实写的不太好,总之思路就是,判断两个数是否互为质数,如果是互为指数,那么他肯定除不尽。 约分后,如果分母的质因数只有2和5,那么能除尽,否则不能除尽
代码//求最大公约数
unsigned int gcd(unsigned int a,unsigned int b){
if (a<b){
int c=a;
a=b;
b=c;
}
while (b!=0){
int c=a%b;
a=b;
b=c;
}
return a;
}
int func(unsigned int m,unsigned int n){
n/=gcd(m,n);
while (n%2==0){
n/=2;
}
while (n%5==0){
n/=5;
}
return n==1;
}
页:
[1]