黑色数学118关
先直接报答案 X=4 Y=13
X和Y是两个整数,且满足2<=X<=Y<=99
甲知道两个数的和,乙知道两个数的积。
一、甲:你不知道这两个数是什么,我也不知道。
二、乙:我现在知道了。
三、甲:我现在也知道了。
那么X和Y分别是多少?
代码先放这 有空再写注释
主要思路就是,乙的数不能有唯一因式分解方法(如9=33,或者9801=9999),慢慢往前推
```python
set1=set()
for i in range(4,9802):
count1=0
for j in range(2,int(i**0.5)+1):
if i%j==0 and i/j<100:
count1+=1
ans=j
if count1==1:
set1.add(int(i/ans)+ans)
dict1={}
for i in range(4,9802):
count1=0
count2=0
for j in range(2,int(i**0.5)+1):
if i%j==0 and i/j<100 and int(i/j)+j not in set1:
count1+=1
ans=j
elif i%j==0 and i/j<100 and int(i/j)+j in set1:
count2+=1
if count1==1 and count2>0:
if int(i/ans)+ans not in dict1:
dict1[int(i/ans)+ans]=True
else:
dict1[int(i/ans)+ans]=False
for keys in dict1:
if dict1[keys]==True:
print(keys)