当前位置:   article > 正文

统计给定整数M和N区间内质数的个数并对它们求和。_在一行中顺序输出m和n区间内素数的个数以及它们的和,数字间以空格分隔

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

统计给定整数M和N区间内质数(素数)的个数并对它们求和。
输入格式:输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
输出格式:在一行中顺序输出M和N区间内质数的个数以及它们的和,数字间以空格分隔。
输入样例:10 31
输出样例:7 143

思路:需要判断一个数是否质数;需要一个函数来计数;需要一个函数来把所有的质数求和;

程序主体结构:输入整数,计算并分析整数,输出题目要求的格式

质数:2、3、5、7、9、11、13等

  1. import math
  2. #判断一个数是否是质数
  3. def IsPrime(i):
  4. if i==1: #1不是质数
  5. return False
  6. for j in range(2,int(math.sqrt(i))+1): # 将除了1和自己本身(缩小范围,本身开平方)之外的数遍历一遍当做除数
  7. if i%j==0: # 如果i除以j后取得余数等于0,就不是质数(素数)
  8. return False
  9. return True
  10. a=int(input("请输入正整数M:"))
  11. b=int(input("请输入正整数N:"))
  12. count=0 #M和N之间的质数数量,计数
  13. sum=0 #M和N之间的质数之和
  14. for i in range(a,b+1):
  15. if IsPrime(i):
  16. #print(i) #输出质数
  17. count+=1 #统计质数的个数
  18. sum+=i #质数求和
  19. print("质数的数量为:",count,"质数之和为:",sum)

方法2:

  1. m,n=map(int,input().split()) #将输入的值分割后,强制转换为int类型赋值给m和n
  2. sum=0
  3. count=0
  4. for i in range(m,n+1):
  5. lst=[j for j in range(1,i+1) if i%j==0] #把一个数的每个约数存在列表中
  6. if lst==[1,i]: #判断是质数。列表中除了1和本身没有其他数就是质数
  7. count+=1
  8. sum+=i
  9. print(count,sum)

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/329199
推荐阅读
相关标签
  

闽ICP备14008679号