新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

《新大榭》- 创大榭地方网络社区先锋品牌 新大榭始终专注于地方网络社区平台的建设 关于我们- [大记事]- 留言建议- [新手报道]

发布 .新大榭软件管家(Excel版) V6.0版 财务/仓库/生产/销售/采购/行政/人事/校园 .公告 - 客户 - 打赏 - 职场 - Excel - Python.

新大榭镜像-音乐-法律-图书-高中课堂-实验 广告是为了能更好的发展 [欢迎商家支持本站互利共赢] 广告位招租.首页黄金广告位等您来!联系 13566035181

查看: 126|回复: 0

[榭中] 7260 - [B]找出质数对的和等于正整数的数对

[复制链接]
发表于 2021-6-13 13:35:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!

您需要 登录 才可以下载或查看,没有账号?注册

x
给定一个正整数,编写程序找出质数对的和等于输入的这个正整数的数对,数对第一个数小于等于第二个数,并输出结果。输入值小于1000,大于50 G, P& G$ Y4 g0 @; A) V

1 n7 R( D$ A( w, w0 W) Q
  1. def is_prime(num):
    , {' @0 D1 c# i5 S/ ]
  2.     for i in range(2,int(num**0.5)+1):8 T4 C, c( D) \* S$ \
  3.         if num % i ==0:7 k; A! @0 v0 U4 E
  4.             return False# b/ q% O, e3 G) y. U9 _: A  w2 E
  5.     else:
    & O, ~* F7 E" a! e  u) a
  6.         return True" i8 t6 @; d! c* H# D' Q
  7. num=int(input())# [6 i0 O1 Z" `/ _) W. A
  8. prime_ls=[int(i)for i in range(2,num) if is_prime(i)]
    ) b6 ~' a0 e) K$ Y% S; a4 M
  9. #print(primelist)
    ' Q- J" A' f$ E3 n2 K5 S. G

  10. & w0 }4 W! {( `" Z( I5 ~" _

  11. ! s5 }# f! t+ `) C& [5 i# w
  12. # # 方法一,循环判断
    * ?2 N" g" p; \% K7 S6 m
  13. # data=[]6 B+ H3 O+ D- ]/ a/ T# k( G$ j
  14. # for num1 in prime_ls:
    4 D8 g2 x& X. a; ~. }1 U( Y$ U
  15. #     for num2 in prime_ls:
      C5 X' L/ V1 F' _/ }8 y
  16. #         if num1+num2==num and num1<=num2:1 c, N& r8 P/ ~8 M  t
  17. #             data.append((num1,num2))
    ( J; W- N" I3 x, T$ X
  18. #             data=list(set(data))) y, a$ k4 X+ ]
  19. # data.sort()& n2 h9 u9 e0 |
  20. # for i in data:+ j. M$ {- m; \& J6 |
  21. #     print(i[0],i[1])
    ; I/ ?7 B" P! Z' f; A

  22. 6 q9 q) f2 `! S0 c9 I
  23. # 方法二,滑动区间法) N! i; h: C# l0 [5 g6 {
  24. l = 0
    * e, h; y! s$ o$ R/ w* l& o
  25. r = len(prime_ls)-16 O, y9 \! C! ?9 X* b' L
  26. data = []" i- p6 z" d8 T* H+ U1 H# L
  27. while l<=r:
    $ E5 q, b% d3 V  ^1 U- v: F8 R
  28.     result = prime_ls[l] + prime_ls[r]
    1 o- R4 G5 u) S' O- ^' Q) x/ r( R
  29.     if result>num:
    5 `! F: j8 N- K6 r- X
  30.         r-=1
    + M/ {6 S7 Q" F1 w# J1 d3 V
  31.     elif result<num:* ]5 a& k: o, v" J& ?! l& j
  32.         l+=19 U  L$ D% k( I4 O; h' A; E
  33.     else:! E8 L6 J* q  K1 @" I* Z
  34.         # print(prime_ls[l],prime_ls[r])( K6 t6 y' {& C3 h, j# _, y
  35.         data.append([prime_ls[l],prime_ls[r]])1 _* O% s: M5 m
  36.         l+=1+ Z- \& C3 b' x& c" W
  37. data.sort()
    & y5 [8 s3 R, T, T1 A
  38. for i in data:: P% V. S$ h+ ]
  39.     print(i[0],i[1])
复制代码
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

文字版|小黑屋|新大榭 ( 浙ICP备16018253号-1 )|点击这里给站长发消息|

GMT+8, 2026-4-3 21:00 , Processed in 0.071630 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表