关于无限小数的问题————编程语言描述
题目描述
如果1/n是无限小数输出Yes,否则输出No
输入
输入包含t组测试样例(1≤t≤10^5)
下面t行输入一个正整数n(1≤n≤10^ 5)
输出
按要求输出Yes或者No
样例
输入
2
2
3
输出
No
Yes
废话少说,相信大家都知道基本思路,但如何通过代码来实现呢
上代码
C++代码
#include<stdio.h>
bool ill(long long n)
{
if(n==1) return false;
else if(n%2==0)
{
return ill(n/2);
}
else if(n%5==0)
{
return ill(n/5);
}
else return true; #返回true代表是无限小数
}
int main()
{
long long t;
scanf("%lld",&t);
while(t--)
{
long long n;
scanf("%lld",&n);
if(ill(n))
printf("Yes\n");
else printf("No\n");
}
return 0;
}
java代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
int a=scanner.nextInt();
for (int i = 0; i < a; i++) { //测试例子数目
int n=scanner.nextInt();
boolean c=fun(n);
if(!c){
System.out.println("No");
}else{
System.out.println("Yes");
}
}
}
public static boolean fun(int n)
{
if(n==1) return false;
else if(n%2==0)
{
return fun(n/2);
}
else if(n%5==0)
{
return fun(n/5);
}
else return true;
}
}
Python代码
def f(n):
if n==1:
return False
elif n%2==0:
return f(n/2)
elif n%5==0:
return f(n/5)
else:
return True
t=int(input())
for _ in range(t):
n=int(input())
if f(n):
print('Yes')
else:
print('No')
以上就是本期的全部内容了。