每日一练
题目描述
小Q的数学老师给小Q一个整数N,问小Q能否将N分解为两个整数X和Y相乘,并且满足X为奇数,Y为偶数。即能否找到奇数X和偶数Y满足X*Y=N。
小Q被这个问题难住了,希望你能来帮助他计算。
示例:
1.输入的第一行包含一个正整数 t (1<=t<=1000),表示测试样例数。
2.接下来的t行,每行一个正整数N(2<=N<2^63),表示给出的N,保证N不是2的幂次。
if在满足条件的X*Y=N,输出 X Y,else:若不存在,输出 No.
样例(inptu)输入:
2
10
5
样例(print)输出
5 2
No
分析:
1.是使用输入函数input()
yanglie=input("请输入需要验证的样例数:")
2是判断条件
if (j+1)%2==0 and k%2==0 and j*k==int(a1):
print (j)
print(k)
break
elif int(a1)/2<k and int(a1)/2<j:
print('No')
break
其他就比较容易了,完整代码
import pandas as pd
import math
yanglie=input("请输入需要验证的样例数:")
a=pd.Series(0)
for i in range(int(yanglie)):
a[i]=input("请输入第{}个数字:".format(i+1))
for a1 in a:
if int(a1)<2**63:
for j in range(1,math.ceil(int(a1)/2)+1):
for k in range(1,math.ceil(int(a1)/2) +1):
if (j+1)%2==0 and k%2==0 and j*k==int(a1):
print (j)
print(k)
break
elif int(a1)/2<k and int(a1)/2<j:
print('No')
break
输入:
2
10
5
输出:
5
2
No
其他验证:
输入
12
21
35
输出结果:
3
4
No
No
验证正确