我有一个Python的任务,需要输入2个用户输入的数字(确保第一个数字小于第二个数字),并查找第一个数字的倍数和第二的除数..我只允许使用一个while循环(新条件我今天老师又补充道..)我和一个做了它的循环:查找2个用户输入数字的倍数和除数的数字
N_small = int(input("Enter the first number: "))
N_big = int(input("Enter the second number: "))
numbers = ""
if N_small > N_big:
print("The first number should be smaller. Their value will be swapped.")
N_small, N_big = N_big, N_small
for x in range(N_small, N_big+1, N_small):
if N_big % x == 0:
numbers += str(x) + " "
print("The numbers are: ", numbers)
我不要求对于如何使用while循环做到这一点的答案 - 但我只是需要一两个提示来弄清楚如何开始这样做...任何人都可以启发我吗?
感谢
提示:首先找到第二个数字的约数。为了找到除数,从2到sqrt(n2)(为什么?)遍历所有数字,并保留那些当n2除以问题数字时余数为零的原因(为什么?)。然后循环浏览迄今为止保留的那些数字,并保留那些除以n1的余数为零的数字。 – 2014-09-18 23:31:52
@RobertDodier:我想他问的是如何用等效的while循环替换他的'for'循环,而不是用于不同的算法(就像他现有的代码那样自然用'for'循环编写)。 – abarnert 2014-09-18 23:34:19