python求1~100之间的所有素数之和

Python07

python求1~100之间的所有素数之和,第1张

解题思路:需要实现两个函数,一个是判断数字是否是素数;一个是求和函数。

实现函数,判断是否是素数,is_prime,具体代码如下:

def is_prime(num):

  """

  判断是否是素数.

  :param num:

  :return:

  """

  result = True

  # 质数大于 1

  if num >1:

      # 查看因子

      for i in range(2, num):

          if (num % i) == 0:

              result = False

              break

      else:

          result = True

  # 如果输入的数字小于或等于 1,不是质数

  else:

      result = False

  return result

实现函数,计算数字start到end之间的所有素数之和,sum,具体代码如下:

def sum(start, end):

  """

  求闭区间[start, end]之间的素数之和.

  :param start:

  :param end:

  :return:    """

  result = 0

  for i in range(start, end + 1):

      if is_prime(i):

          print(i)

          result = result + i

  return result

在main函数中调用求和,代码如下:

if __name__ == '__main__':

  num = 8

  print(is_prime(num))

  num = 5

  print(is_prime(num))

  print(sum(1, 5))

完整 代码如下:

# Python3.6

string = input("输入m和n,m<n,以空格分离\n")

m, n = map(int, string.split())

number_range = {"start": 0, "end": 2147483647}

if m < number_range["start"] or n > number_range["end"]:

    print("输入数字越界。")

    exit()

result = m

for i in range(m+1, n):

    result &= i

print("{}到{}按位与的结果是:{}={}".format(m, n, bin(result), result))