判断分数是否是有限小数(D - Decimal)

Posted issue是fw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断分数是否是有限小数(D - Decimal)相关的知识,希望对你有一定的参考价值。

考虑分数 a b \\frac{a}{b} ba是不是有限小数,实际上只需要考虑 1 b \\frac{1}{b} b1是不是有限小数

1 b = h \\frac{1}{b}=h b1=h,其中 h h h是一个有限小数,小数点后有 n n n

两边同时乘以 1 0 n 10^n 10n得到

1 0 n b = 1 0 n ∗ h \\frac{10^n}{b}=10^n*h b10n=10nh

加入我们的假设是真的,即 h h h真的是有限小数,那么 1 0 n b \\frac{10^n}{b} b10n应该是一个整数

1 0 n 10^n 10n质因子分解,得到

2 n 5 n b \\frac{2^n5^n}{b} b2n5n必须是一个正数

也就是若 b b b分解质因子后只有 2 , 5 2,5 2,5,那一定是一个整数。


例题

LINK

按照上面的方法判断即可

#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e5+10;
int t,n;
int main()
{
	cin >> t;
	while( t-- )
	{
		cin >> n;
		while( n%2==0 )	n /= 2;
		while( n%5==0 )	n /= 5;
		if( n!=1 )	cout << "Yes\\n";
		else	cout << "No\\n";
	}
}

以上是关于判断分数是否是有限小数(D - Decimal)的主要内容,如果未能解决你的问题,请参考以下文章

习题2-5 分数化小数(decimal)

白书p35 习题2-4 分数化小数(decimal)

22. 分数化小数 decimal

C#中的decimal怎么保留两位小数

166 Fraction to Recurring Decimal 分数到小数

[LeetCode] 167. Fraction to Recurring Decimal 分数转循环小数