-1

Please what's wrong with my python code, it always reports File "lake.py", line 28 SyntaxError: invalid syntax`. I wonder, is it the brackets? or what could be causing the error, I will appreciate any help thank you

def count(m, n):
    if(n < m):
        temp = n
        n = m
        m = temp

    return m * (m + 1) * (2 * m + 1) / 6 + (n - m) * m * (m + 1) / 2


arr = []
arr2 = []

foo = 100
n = foo
if (n == 1):
    print('1')
    print('1 1')
else:
    for m in range(n):
        n=(((6 * foo) - (m * (m + 1) * (2 * m + 1))) / (3 * ((m * m) + m))) + m

        if (count(m, n) == foo and m <= n):
            arr.append(''+str(int(m))+' ' + str(int(n))+'')
            if(m != n):
                arr2.append(''+str(int(n)+' ' + str(int(m)+'')


    arr = arr + arr2
    arrLength = len(arr)
    print(arrLength)

    for g in range(arrLength):
        print(arr[g])
Henry Woody
  • 14,024
  • 7
  • 39
  • 56
ayotycoon
  • 199
  • 2
  • 12

2 Answers2

1

You appear to have parenthesis out of place.

arr2.append(''+str(int(n)+' ' + str(int(m)+'')

should be

arr2.append(''+str(int(n))+' ' + str(int(m))+'')

Marcel Wilson
  • 3,842
  • 1
  • 26
  • 55
  • 1
    In total yes but really no ! it should change to `arr2.append(''+str(int(n)) +' ' + str(int(m))+'')` because `arr2.append(''+str(int(n)+' ' + str(int(m)+'')))` will get **TypeError** TypeError: unsupported operand type(s) for +: 'int' and 'str' – keyvan vafaee Sep 28 '18 at 17:00
0

In line 25 change 'arr2.append(''+str(int(n)+' ' + str(int(m)+'')' to arr2.append(''+str(int(n)) +' ' + str(int(m))+'')

Note : after i runned your code i see a error

 n=(((6 * foo) - (m * (m + 1) * (2 * m + 1))) / (3 * ((m * m) + m))) + m

ZeroDivisionError: division by zero

That's because you use foo =100 (in line 13) and then use n = foo So after for m in range(n): the loop will started with 0

so m is zero now ! and in

n=(((6 * foo) - (m * (m + 1) * (2 * m + 1))) / (3 * ((m * m) + m))) + m

your program will throw an exception

So for Fixing this part you can change for m in range(n): to

 for m in range(1 ,n):
keyvan vafaee
  • 464
  • 4
  • 15