山东省高中信息技术学业水平考试试题网 - 数据与计算|信息系统与社会|数据与数据结构|网络基础|数据管理与分析|移动应用设计|三维设计与创意|开源硬件项目设计|算法初步|智能系统初步

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 329|回复: 0
收起左侧

第十四讲 Python经典编程练习题

[复制链接]

273

主题

672

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647
QQ
发表于 2019-12-31 13:53:58 | 显示全部楼层 |阅读模式
第十四讲 Python经典编程练习题
题目一:判断101-200之间有多少个素数,并输出所有素数。  L+ S) J& A1 h
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。       : l# n, S% z. C  g% H
2.程序源代码:( n: }$ E5 d+ q" f
  1. h=0
    , i  e" g# h  ]  Y' L: y& H- P
  2. leap=1
    # ]$ I+ S# q! H* I/ A
  3. from math import sqrt; G0 o/ @$ y& P* J  E3 z
  4. from sys import stdout$ i8 H. B  w, X
  5. for m in range(101,201):1 c. @2 {3 F7 q
  6.     k=int(sqrt(m+1))  c- k7 b& T3 K7 z
  7.     for i in range(2,k+1):
    3 E5 F: r3 ^* |! i; f
  8.         if m%i==0:( g" I2 x" J& `7 E9 m
  9.             leap=00 W  y' w: G- O! C- p9 J( v
  10.             break
    4 a8 N! J) L( C: f6 x4 T  c3 H
  11.     if leap==1:& P3 f& R! \- I& q# b
  12.         print('%-4d'%m): J# [4 H9 \: F/ ]& F: V
  13.         h+=19 U; j7 b1 G8 ^& ~$ u! ~' T, p3 }) S
  14.         if h%10==0:
    " L. `! r, l* i; S/ L4 J7 G
  15.             print('')
    ( ^+ C# z2 L; D) |# X% d
  16.     leap=1
    0 s7 B6 c  l; V$ G; d! I; Z
  17. print('The total is %d'%h)
复制代码
题目二:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
* J% ~) ]5 y! H+ U程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
2 F/ ~9 F1 T' H) h- P+ Q4 t(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
4 y* k2 S. Z( `9 o& Z$ ~# h(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。. N" o. k- t! F- {
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。9 m: D* v, e! O+ V$ T4 P) _
2.程序源代码:
9 g! T/ X3 T& c' e
  1. from sys import stdout1 L& E4 O( t& e- m! C3 `
  2. n = int(input("input number:\n"))4 `6 g0 z& \2 z7 O
  3. print("n=%d"%n)
    + x9 ?7 u# V" a! \1 d
  4. for i in range(2,n+1):
      T' _% [2 y/ B) j8 F
  5.     while n!=i:( ^5 }; e2 ~$ R1 P/ s3 Y! w- m/ L
  6.         if n%i==0:
    " M; H/ ^( r: Z
  7.             stdout.write(str(i))/ U5 T; t# ^8 j) b& v) s2 m) I; S
  8.             stdout.write("*")
    * k! o2 W3 M' I7 ^: l1 r- k" }
  9.             n = n/i
    % C# k( n9 X7 b
  10.         else:
    * X/ }  R1 o+ Y# U% d
  11.             break
    5 V% z3 \4 w/ ~2 m: [
  12. print("%d"%n)
复制代码

, ^1 R; k" B8 r$ L3 f" ?
楼主热帖




上一篇:第三章 学业评价
+1
329°C
沙发哦 ^ ^ 马上

帖子地址: 

教书育人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

百度一下 百度二下 百度三下 开门大吉

QQ|Archiver|手机版|小黑屋|山东省高中信息技术学业水平考试试题网 ( 鲁ICP备16049757号 )|网站地图

GMT+8, 2020-1-29 05:56 , Processed in 0.303515 second(s), 39 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表
潍坊行知学校信息技术QQ交流群:
潍坊行知学校信息技术
潍坊行知学校复读官方招生QQ群:
潍坊行知学校复读招生