python基础过关(八)

1、输入一个正整数n,输出他所有的质因数,输出一行,以;隔开。Is0100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

习题解析:从小到大,找到一个因数,除去一个因数,直到结果为1.就是所有质因数(因为小的数都被除掉了  大的数只能是质数)。去掉重复的即可。Is0100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 Is0100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. n=int(input()) 
  2. i=2 
  3. ans=[] 
  4. while n>1
  5.     if n%i==0
  6.         ans.append(i) 
  7.         n/=i 
  8.     else
  9.         i+=1 
  10. ans=list(set(ans))  #列表去重  set是集合,集合不会包含重复元素 
  11. for j in ans: 
  12.     print(j,end=";"

2、输入一行数字,以,隔开,找出其中所有的的质数并输出在一行,以;隔开。Is0100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

习题解析:定义判定质数的函数:从2-平方根,只要有一个因数就不是质数,从头到尾没有就是质数。然后将输入的字符串转分隔开并逐个判定。Is0100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 Is0100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. import math 
  2. def is_pr(m): 
  3.     n=int(math.sqrt(m)) 
  4.     for i in range(2,n+1): 
  5.         if m%i==0
  6.             return False 
  7.     return True 
  8. s=input() 
  9. sn=s.split(","
  10. for x in sn: 
  11.     l=int(x) 
  12.     if is_pr(l): 
  13.         print(l,end=";"
例题: 1、递归求阶乘,输入一个正整数m,输出他的阶乘。
  1. m=int(input()) 
  2. def f(n): 
  3.     if n<1
  4.         return 1 
  5.     else
  6.         return n*f(n-1
  7.  
  8. print(f(m)) 

2、递归做如下输入输出Is0100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

输入样例:5Is0100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

输出样例:Is0100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

1Is0100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

22Is0100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

333Is0100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

4444Is0100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

55555Is0100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 Is0100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. def prt(n): 
  2.     if n==1
  3.         print(1
  4.     else
  5.         prt(n-1
  6.         print(str(n)*n) 
  7. m=int(input()) 
  8. prt(m) 
函数递归:函数在定义时调用自身,递归包含:边界条件&递推关系。缺一不可。

关 键 词

Python

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢