1、输入一个正整数n,输出他所有的质因数,输出一行,以;隔开。
习题解析:从小到大,找到一个因数,除去一个因数,直到结果为1.就是所有质因数(因为小的数都被除掉了 大的数只能是质数)。去掉重复的即可。
- n=int(input())
- i=2
- ans=[]
- while n>1:
- if n%i==0:
- ans.append(i)
- n/=i
- else:
- i+=1
- ans=list(set(ans)) #列表去重 set是集合,集合不会包含重复元素
- for j in ans:
- print(j,end=";")
2、输入一行数字,以,隔开,找出其中所有的的质数并输出在一行,以;隔开。
习题解析:定义判定质数的函数:从2-平方根,只要有一个因数就不是质数,从头到尾没有就是质数。然后将输入的字符串转分隔开并逐个判定。
例题: 1、递归求阶乘,输入一个正整数m,输出他的阶乘。
- import math
- def is_pr(m):
- n=int(math.sqrt(m))
- for i in range(2,n+1):
- if m%i==0:
- return False
- return True
- s=input()
- sn=s.split(",")
- for x in sn:
- l=int(x)
- if is_pr(l):
- print(l,end=";")
- m=int(input())
- def f(n):
- if n<1:
- return 1
- else:
- return n*f(n-1)
- print(f(m))
2、递归做如下输入输出
输入样例:5
输出样例:
1
22
333
4444
55555
函数递归:函数在定义时调用自身,递归包含:边界条件&递推关系。缺一不可。
- def prt(n):
- if n==1:
- print(1)
- else:
- prt(n-1)
- print(str(n)*n)
- m=int(input())
- prt(m)