この質問は多く寄せられていると思いますが、他のフォーラムをチェックして問題に対処しようとしましたが、役に立たないようです. オーバーフローの問題があると思いますが、修正方法を思い出せません。私はコーディングから長い休憩を取ったので(私のせいです)、物事のスイングに戻るのを助けるためにいくつかの問題を試みています. だから、何がうまくいかないのか疑問に思っています。私が試しn = 1000
てみると答えは間違っていますが、それよりも小さい数字はうまくいくようです。大きな数は機能しないので、整数オーバーフローだと思います。
def n_number():
n = raw_input("Enter a max number: ")
try:
int(n)
return n
except ValueError:
print 'Value is not an integer'
exit(1)
# 'function that will add multiples of 3 and 5 that are less than the given value, n.'
def sum_multiplies(n):
sum = long(0)
counter3, counter5 = int(1),int(1)
value3 = 3*counter3
value5 = 5*counter5
while True:
# 'sums of multiples of 5\'s less than n'
if value5<int(n):
sum+= value5
counter5+=1
value5 = 5*counter5
# 'sums of multiples of 3\'s less than n'
if value3<int(n):
sum+= value3
counter3+=1
value3 = 3*counter3
else:
break
print "sum: %s" %sum
print "counter3: %s" %counter3
print "counter5: %s" %counter5
def main():
'max number is in n'
n = n_number()
sum_multiplies(n)
if __name__ == "__main__":
main()