Programming Questions

  • Newest
  • Popular Tags
  • Ask A Question
  • ThreeFive Multiples Incorrect Test Case
    I'm getting incorrect outputs for test case for input == 31 and 17. I checked the math and the outputs are 270 and 75 respectively, which I think are correct. Please advise.
    def ThreeFiveMultiples(num): 
      multiples = []
      for i in range (0, num, 5):
        multiples.append(i)
      for j in range (0, num, 3):
        multiples.append(j)
      # code goes here
      
      total = sum(multiples)
    
      return total
    
    # keep this function call here  
    # to see how to enter arguments in Python scroll down
    print ThreeFiveMultiples(raw_input())           
    
    tomsun posted this question on 4/7/15 | python
    Answers
  • +
  • 10
  • -
  • It looks like if the number a multiple of 5 and 3 you are counting them twice.
  • +
  • 1
  • -
  • Just a minor issue but the code fails because raw_input() expects a string but your code is treating num as an int. try the following change.
    def ThreeFiveMultiples(num): 
      num = int(num)
      multiples = []
      for i in range (0, num, 5):
        multiples.append(i)
      for j in range (0, num, 3):
        multiples.append(j)
      # code goes here
      
      total = sum(multiples)
    
      return total
    
    # keep this function call here  
    # to see how to enter arguments in Python scroll down
    print ThreeFiveMultiples(raw_input())  
    when I tested the outputs I got were 270 and 75 with your inputs.
  • +
  • 0
  • -
  • To display code include the following tags:
    def ThreeFiveMultiples(num):
    	multiples = []
    	for i in range (0, num, 5):
    		multiples.append(i)
    	for j in range (0, num, 3):
    		multiples.append(j)
    		# code goes here
      
            total = sum(multiples)
            return total
    print ThreeFiveMultiples(int(raw_input()))
    
    raw_input returns string, it has to be converted to int
    Log in to write an answer.