PTA-统计素数并求和

题目:

本题要求统计给定整数M和N区间内素数的个数并对它们求和。

输入格式:

输入在一行中给出两个正整数M和N(1≤M≤N≤500)。

输出格式:

在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。

输入样例:

10 31

输出样例:

7 143

分析: 

  1. 首先,定义了一个函数is_prime(n),用于判断一个数n是否为素数。如果n小于2,直接返回False。然后,通过一个for循环,检查从2到n的平方根的所有整数是否能整除n。如果n能被任何一个数整除,那么它就不是素数,函数返回False。如果n不能被任何数整除,那么它就是素数,函数返回True。
  2. main()函数是主函数,它首先接收用户输入的两个整数m和n,然后使用is_prime函数来检查从m到n之间的每一个数是否为素数。如果是素数,就增加count(素数的数量)并增加sum(所有素数的和)。
  3. 最后,输出count和sum。

Python版本:

import math  
  
def is_prime(n):  
    if n < 2:  
        return False  
    for i in range(2, int(math.sqrt(n)) + 1):  
        if n % i == 0:  
            return False  
    return True  
  
def main():  
    m, n = map(int, input().split())  
    count = 0  
    sum = 0  
    for m in range(m, n+1):  
        if is_prime(m):  
            count += 1  
            sum += m  
    print(count, sum)  
  
if __name__ == "__main__":  
    main()

结果:

PTA-统计素数并求和_第1张图片

总结: 

这段代码的核心是is_prime函数,它使用了一种常见的优化方法来判断一个数是否为素数——只需检查到它的平方根即可。然后,主函数main遍历从m到n之间的所有整数,并使用is_prime函数来检查它们是否为素数。如果是,就累加素数的数量和它们的和,最后输出结果。总的来说并不难!

 

 

你可能感兴趣的:(算法,数据结构,数学建模)