以下内容来自ProofWiki(对数字进行了少许修改):
有一所学校,有25名学生,并相应地有25个储物柜,所有储物柜都是从封闭处开始的。第一个学生打开每个储物柜。第二个学生从第二个开始关闭所有其他储物柜。第三个学生从第三个开始更改每个第三个储物柜的状态。即,如果储物柜是打开的,则将其关闭,如果储物柜是关闭的,则将其打开。直到所有25名学生都通过储物柜之前,这一过程一直持续到现在。第25名学生完成后,哪些储物柜是打开的,哪些是储物柜是关闭的?
我已经知道答案是所有完美的平方,并且我理解为什么。我的目标是尝试使用代码来解决问题(我是编码的新手),但我不知道出了什么问题。
代码如下:
for a in range (1,26):
count_factor(a) == 0
def count_factor(a):
for a in range (1,26):
for b in range (1,26):
if b%a == 0:
count_factor(a) += 1
total = 0
for a in range (1,26):
if count_factor(a)%2 == 1:
total = total + 1
print (total)
预期输出应该仅为10。但是,它表示存在语法错误,并且不能将其分配给on上的函数调用
count_factor(a) += 1
有什么想法吗?
答案 0 :(得分:0)
语句count_factor(a) += 1
没有任何意义。
展开+=
运算符时,等效于:
count_factor(a) = count_factor(a) + 1
您要为分配给一个没有意义的功能。