|
|
谦和的机器人 · ChatGPT と学ぶ Rake ...· 1 月前 · |
|
|
酒量小的啄木鸟 · Two problems with ...· 1 月前 · |
|
|
成熟的枇杷 · Python3 re.search()方法· 1 月前 · |
|
|
憨厚的火腿肠 · [BUG]not shutting ...· 1 月前 · |
|
|
鼻子大的生姜 · Xp65 conda init fails ...· 1 周前 · |
|
|
气宇轩昂的跑步鞋 · Python venv ...· 2 年前 · |
|
|
气势凌人的红烧肉 · android - How to ...· 2 年前 · |
|
|
想表白的金鱼 · springboot单元测试mock依赖的类 ...· 2 年前 · |
|
|
乖乖的数据线 · CSS实现不规则图形的立体效果_css ...· 2 年前 · |
题目: 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
程序源代码:
以上实例输出结果为:
90 = 2 * 3 * 3 * 5 100 = 2 * 2 * 5 * 5 是否进入循环?是:1, 否:0 0小天儿
102***9045@qq.com
JohnLee
372***369@qq.com
Chivalry
825***501@qq.com
Eric
382***115@qq.com
Kunz
sun***gup@163.com
Almighty
132***9971@qq.com
Mark
104***7790@qq.com
CosmosHua
cos***cosmos@163.com
kevinjin
314***1905@zju.edu.cn
小差罗
675***527@qq.com
办法比较蠢 但是挺好理解的吧循环次数不多,定义素数函数,能被素数整除就输出
import math def isprime(num): flag=1 for i in range(2,int(math.sqrt(num))+1): if num%i==0: flag=0 break if flag: return True else: return False num=int(input('input a number:')) print(num,'=',end='') while(not isprime(int(num))): for i in range(2,int(num)): if num%i==0: print(i,'*',end='') num/=i break print(int(num))大大大大大大大熊
382***076@qq.com
wuhangxiang
yef***yun241@foxmail.com
Echo
csz***13@163.com
函数处理, 兼容 python2.x 与 python3.x
#!/usr/bin/python # -*- coding: UTF-8 -*- num = int(input('请输入需要分解的数:')) def fenjie(num): strf = '{}='.format(num) flag = True while flag: for i in range(2,num+1): if not num%i: if i==num: flag = False strf = strf + str(i) else: strf = strf + str(i) + '×' num = num//i break return strf print(fenjie(num))
阳光不锈
173***979@qq.com
阳光不锈
173***979@qq.com
Python3: 使用一个生成器 f(x),生成整数 x 的所有质因数。代码如下:
#isprime函数,x是素数返回1,不是返回0 def isprime(x): for i in range(2,x): if x%i==0: return 0 else: return 1 #生成器f(x),生成整数x的所有质因数 def f(x): while not isprime(x): for i in range(2,x): if x%i==0: x=x//i yield i break yield x k=int(input('是否继续求解?是:1, 否:0\n')) while k: n=int(input('num:')) print(str(n)+'=',end='') for j in f(n): s+=str(j)+'*' print(s[:-1]) print() k=int(input('是否继续求解?是:1, 否:0\n'))
|
|
酒量小的啄木鸟 · Two problems with ansible-pull on Rocky Linux 8 - Rocky Linux Help & Support - Rocky Linux Forum 1 月前 |
|
|
成熟的枇杷 · Python3 re.search()方法 1 月前 |