您的位置:

Python 程序:计算前n个自然数平方和

在本教程中,我们将学习如何使用 Python 计算前n个自然数的平方和。

我们有一个正整数“N”,我们的任务是计算(12+22+32+42+52+…+N2

示例:


Input: N = 6
Output: 91 
12 + 22 + 32 + 42 + 52 + 62 
= 1 + 4 + 9 + 16 + 25 +36
= 91

Input:  N = 2
Output: 5
12 + 22
= 1 + 4
= 5

方法 1: O(N)

在这种方法中,用户必须运行从 1 到“N”自然数的循环,对于每个 K,1 <= K <= N。用户必须找到 K2 来计算总和。

示例:


# First, we will create a function 
# which will return the sum of
# squares of first "NN"
# natural numbers
def square_sum(NN) :

    # here, we will iterate K from 1 
    # and NN for finding 
    # the square numbers from K to NN and
    # then add to sum.
    sum_1 = 0
    for K in range(1, NN + 1) :
        sum_1 = sum_1 + (K * K)

    return sum_1

# Driven Program
NN = int (input ("Please enter the 'N' natural number: "))
print (square_sum(NN)

输出:

Please enter the 'N' natural number:  56
60116

方法二: O(1)

在该方法中,用户可以通过使用以下公式来计算前“N”个自然数的平方和:


(NN * (NN + 1) * (2 * NN + 1)) / 6

例如:


For NN = 6, sum_1 = (6 * (6 + 1) * (2 * 6 + 1)) / 6
            = (6 * (7) * (13)) / 6
            = (546) / 6
            = 91
For NN = 56, sum_1 = (56 * (56 + 1) * (2 * 56 + 1)) / 6
              = (56 * (57) * (113)) / 6
              = (3,60,696) / 6
              = 60116

代码:


# First, we will create a function 
# which will return the sum of
# squares of first "NN"
# natural numbers
def square_sum(NN) :
    return (NN * (NN + 1) * (2 * NN + 1)) // 6

# Driven Program
NN = int( input("Please enter the 'N' natural number: "))
print (square_sum(NN))

输出:

Please enter the 'N' natural number:  87
223300

如何避免早期溢出:

对于大的“NN”自然数,值[(NN (NN + 1) (2 NN + 1)) / 6]可能会溢出。用户可以通过使用(NN (NN + 1))必须被 2 整除来避免这种情况。

示例:


# First, we will create a function 
# which will return the sum of
# squares of first "NN"
# natural numbers

def square_sum(NN):
    return (NN * (NN + 1) * (2 * NN + 1)) // 3

# Driven Program
NN = int( input("Please enter the 'N' natural number: "))
print (square_sum(NN))

输出:

Please enter the 'N' natural number:  567
121844520

结论

在本教程中,我们解释了使用 python 计算“N”个自然数的平方和以及避免代码溢出的两种方法。