• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

繁星点点……

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

歌德巴赫猜想:验证6到100的偶数,都能表示成两个素数之和。

 1 from math import sqrt
 2 for n in range(6,101,2): #遍历验证m1从3到n/2的奇数
 3     #n=m1+m2             #验证m1是否为素数
 4     for m1 in range(3,int(n/2)+1,2): #flag1表示m1是否为素数,初值为真
 5         p1=int(sqrt(m1))
 6         flag1=True
 7         for i in range(2,p1+1):
 8             if m1%i==0:
 9                 flag1=False #如果能被除尽,则不是素数,flag1为假。
10                 break
11             if flag1:       #如果m1是素数,验证m2是否为素数。
12                 m2=n-m1
13                 p2=int(sqrt(m2))
14                 flag2=True  #flag2表示m2是否为素数,初值为真。
15                 for i in range(2,p2+1):
16                     if m2%i==0:
17                         flag2=False
18                         break
19                 if flag2: 如果m2是素数,n能表示为两素数之和,输出。
20                     print("%3d=%2d+%d" %(n,m1,m2),end="\t")
21                     break

 

posted on 2019-07-03 07:06  天若有情66  阅读(872)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3