我正在试着写一个代码来解决网上看到的减少分数的问题。对于n和d的小值,我得到了答案,但是当尝试求解n和d的大值时,For循环花费了太长的时间,以至于我得到了一个内存错误(在等待代码运行了大约一个小时之后)。
“通过按大小升序列出d≤1,000,000的缩减真分数集...”
有没有一种方法可以在不使用冗长的for循环的情况下检查所有可能的分数以获得较大的n值?
fraction_list = []
for d in range(1000000):
for n in range(1000000):
if n<d and n/d ==0 :
frac = float(n) / float(d)
#print(frac)
fraction_list.append(frac)
index_num = (fraction_list.index(float(2.0/7.0)))
sorted(fraction_list, key=float)
print(fraction_list[index_num])
print("the fraction which is to the left is" + fraction_list[index_num -1])
https://stackoverflow.com/questions/51460131
复制相似问题