+2

How to find sum of the series 2+ 10+ 18+.... n in Python?

I'm a new learner and wondering how to do it. I can do it in c programming

12/2/2019 3:58:55 PM

Ishmum Tahzeeb

17 Answers

New Answer

+6

You just need to use range() and sum() : result = sum(range(2, n, 8)) where n is the ending value. In case you don't know, the third argument of range() is optional (it defaults to 1) and it is the step used to output values from 2 to n, giving you 2, 2+8, 2+8+8,..., until the last 2+8k that is smaller than n. Happy coding!

+1

Gonçalo Magalhaes thank you so much man ❤️

+1

You're welcome! Glad I could help :)

+1

Ya you had i better answer. Didn't think of that.

+1

The easiest solution is this: num_list=[2, 4,3,5,1] sum(num_list) # returns sum of the number elements of the num_list.

+1

👻 ƒαянαn 👻 {Less Active: exams} thanks man

+1

Unless Python optimizes for this, it might be faster computationally to use the mathematical shortcut for an arithmetic series Sq= q*(a1 + aq) /2. In this case the nth term, n = 2+(q-1)*8. So with the correction from thoq! below, result=((n + 4)**2 - 4) /16 Here's code showing equivalence to sum(range(2,1000,8)), up to n=994. I haven't timed the two methods yet: https://code.sololearn.com/c9XMNrJqtmRf/?ref=app Or in terms of the qth term: result= (4 *q**2)-2*q I'll time this at some point to see if there's any speed difference compared to writing out the sum of a range. I'm guessing there won't be much. https://m.wikihow.com/Find-the-Sum-of-an-Arithmetic-Sequence

+1

Hope J Your formula doesn't seem to work. This one does (I am sure it could be simplified): res = 8*(((n-2)/8 + 1)*(n-2)/8/2)+2*((n-2)/8)+2 Gonçalo Magalhaes It needs to be like this: sum(range(2,n+1,8)) Otherwise n is excluded from the sum.

+1

x=0 n=int(input("Enter the number")) for a in range(2,n+1,8): x=x+a print(x)

0

If it's a string you can use the eval() function

0

not string, i want the sum

0

I will not give you the exact code. What you do is 1. Define an empty list and the variable, say x, with value 2 2. While loop till x is not equal to n, adding 8 to x each time. 3. In each loop, add the new value of x to the list 4. In the end, find the sum of the list Hope I was clear and also that i understood what you want correctly

0

Thank you very much XXX, but could you please write the code?

0

https://code.sololearn.com/clL46z1HnD25/?ref=app hope that helps. Just a suggestion, you should try yourself also

-1

It works for me. n is the number of terms in the series (including the initial '2'). a(n) is the n'th term, s(n) is the sum of the first n terms. The formula I gave simplifies to: 4n^2-2n. n=1: 2 = 2. s(n)=4(1^2)-2(1) = 4-2= 2. n=2: 2 + 10 = 12. s(n)=4(2^2)-2(2)= 16 - 4 =12. n=3: 2 + 10 + 18 = 30. s(n)=4(3^2)-2(3)=4(9)-6=30. n=4: 2+10+18+26=56. s(n)=4(4^2)-2(4)=56. more generally, if you assume s(n) = 4n^2 - 2n, and we know that that the nth term a(n) = 2 + 8(n-1), you can show that s(n+1)=s(n)+a(n+1), so qed by induction.

-1

Hope J I just tried your formula. Now that I am looking more closely at it I can see that it doesn't work because you were mixing up the variables as they were given in the task. There n is the last number in the series and not the count of numbers in the series.

-1

Ok right. I think the right formula then is s(n) = [(n + 4)^2 - 4]/16. I only verified up to n=26 (four terms) .