赞
踩
统计给定整数M和N区间内质数(素数)的个数并对它们求和。
输入格式:输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
输出格式:在一行中顺序输出M和N区间内质数的个数以及它们的和,数字间以空格分隔。
输入样例:10 31
输出样例:7 143
思路:需要判断一个数是否质数;需要一个函数来计数;需要一个函数来把所有的质数求和;
程序主体结构:输入整数,计算并分析整数,输出题目要求的格式
质数:2、3、5、7、9、11、13等
- import math
-
- #判断一个数是否是质数
- def IsPrime(i):
- if i==1: #1不是质数
- return False
- for j in range(2,int(math.sqrt(i))+1): # 将除了1和自己本身(缩小范围,本身开平方)之外的数遍历一遍当做除数
- if i%j==0: # 如果i除以j后取得余数等于0,就不是质数(素数)
- return False
- return True
-
- a=int(input("请输入正整数M:"))
- b=int(input("请输入正整数N:"))
- count=0 #M和N之间的质数数量,计数
- sum=0 #M和N之间的质数之和
- for i in range(a,b+1):
- if IsPrime(i):
- #print(i) #输出质数
- count+=1 #统计质数的个数
- sum+=i #质数求和
- print("质数的数量为:",count,"质数之和为:",sum)
方法2:
- m,n=map(int,input().split()) #将输入的值分割后,强制转换为int类型赋值给m和n
- sum=0
- count=0
- for i in range(m,n+1):
- lst=[j for j in range(1,i+1) if i%j==0] #把一个数的每个约数存在列表中
- if lst==[1,i]: #判断是质数。列表中除了1和本身没有其他数就是质数
- count+=1
- sum+=i
- print(count,sum)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。