Python 练习实例14 | 菜鸟教程
文章推薦指數: 80 %
Python 练习实例14 Python 100例题目:将一个正整数分解质因数。
例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k, ...
菜鸟教程--学的不仅是技术,更是梦想!
首页
HTML
CSS
JavaScript
Vue
Bootstrap
NodeJS
Python3
Python2
Java
C
C++
C#
Go
SQL
Linux
jQuery
本地书签
首页
HTML
CSS
JS
本地书签
Search
Python3教程
Python2教程
Vue3教程
vue2教程
Bootstrap3教程
Bootstrap4教程
Bootstrap5教程
Bootstrap2教程
Python基础教程
Python基础教程
Python简介
Python环境搭建
Python中文编码
Python基础语法
Python变量类型
Python运算符
Python条件语句
Python循环语句
PythonWhile循环语句
Pythonfor循环语句
Python循环嵌套
Pythonbreak语句
Pythoncontinue语句
Pythonpass语句
PythonNumber(数字)
Python字符串
Python列表(List)
Python元组
Python字典(Dictionary)
Python日期和时间
Python函数
Python模块
Python文件I/O
PythonFile方法
Python异常处理
PythonOS文件/目录方法
Python内置函数
Python高级教程
Python面向对象
Python正则表达式
PythonCGI编程
PythonMySQL
Python网络编程
PythonSMTP
Python多线程
PythonXML解析
PythonGUI编程(Tkinter)
Python2.x与3.x版本区别
PythonIDE
PythonJSON
Python100例
Python测验
Python练习实例13
Python练习实例15
Python练习实例14
Python100例
题目:将一个正整数分解质因数。
例如:输入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的值,重复执行第一步。
程序源代码:
实例(Python2.0+)
#!/usr/bin/python
#-*-coding:UTF-8-*-
defreduceNum(n):
print'{}='.format(n),
ifnotisinstance(n,int)orn<=0:
print'请输入一个正确的数字!'
exit(0)
elifnin[1]:
print'{}'.format(n)
whilennotin[1]:#循环保证递归
forindexinxrange(2,n+1):
ifn%index==0:
n/=index#n等于n/index
ifn==1:
printindex
else:#index一定是素数
print'{}*'.format(index),
break
reduceNum(90)
reduceNum(100)
实例(Python3.0+)
#!/usr/bin/python3
defreduceNum(n):
print('{}='.format(n),end="")
ifnotisinstance(n,int)orn<=0:
print('请输入一个正确的数字!')
exit(0)
elifnin[1]:
print('{}'.format(n))
whilennotin[1]:#循环保证递归
forindexinrange(2,n+1):
ifn%index==0:
n//=index#n等于n//index
ifn==1:
print(index)
else:#index一定是素数
print('{}*'.format(index),end="")
break
reduceNum(90)
reduceNum(100)
以上实例输出结果为:
90=2*3*3*5
100=2*2*5*5
Python100例
Python练习实例13
Python练习实例15
15篇笔记
写笔记
#0 小天儿 102***[email protected]使用Python3的参考解法:
#!/usr/bin/python3
x=int(input("是否进入循环?是:1,否:0\n"));
while(x):
n=int(input("请输入一个正整数:"));
print("%d="%n,end='');
whilennotin[1]:
forindexinrange(2,n+1):
ifn%index==0:
n=int(n/index);
ifn==1:
print("%d"%index,end='');
else:
print("%d*"%index,end='')
break;
print();
x=int(input("是否进入循环?是:1,否:0\n"));
输出测试如下所示:
是否进入循环?是:1,否:0
1
请输入一个正整数:90
90=2*3*3*5
是否进入循环?是:1,否:0
1
请输入一个正整数:100
100=2*2*5*5
是否进入循环?是:1,否:0
0小天儿 小天儿 102***[email protected]年前(2017-04-19)
#0 JohnLee 372***[email protected]使用Python3的参考解法:
#!/usr/bin/python3
defprime(n):
l=[]
whilen>1:
foriinrange(2,n+1):
ifn%i==0:
n=int(n/i)
l.append(i)
break
returnl
s=input("输入一个正整数:")
ifs.isdigit()andint(s)>0:
print(s,"=","*".join([str(x)forxinprime(int(s))]))
else:
print("请输入正确的正整数")
JohnLee JohnLee 372***[email protected]年前(2017-04-19)
#0 Chivalry 825***[email protected]参考解法:
#!/usr/bin/python
#-*-coding:UTF-8-*-
input=int(raw_input("请输入要分解的正整数:"))
temp=[]
whileinput!=1:
foriinrange(2,input+1):
ifinput%i==0:
temp.append(i)
input=input/i
break
printtemp
Chivalry Chivalry 825***[email protected]年前(2017-04-25)
#0 Eric 382***[email protected]参考方案:
#!/usr/bin/python
#-*-coding:UTF-8-*-
importmath
l=[]
defresolve(num):
do=0
ifnum<1:
return
elifnum==1:
l.append(num)
return
foriinrange(2,int(math.sqrt(num))+1):
ifnum%i==0:
do=1
l.append(i)
num=num/i
resolve(num)
break
ifdo==0:
l.append(num)
num=int(raw_input())
resolve(num)
printl
print"%d="%num,
forkinrange(len(l)):
ifk!=len(l)-1:
print"%d*"%l[k],
else:
print"%d"%l[k]
Eric Eric 382***[email protected]年前(2017-04-25)
#0 Kunz sun***[email protected]我的貌似更简单更好理解一些:
#!/usr/bin/python
#-*-coding:UTF-8-*-
n=int(raw_input('Pleaseinputanumber:'))
n1=n
l=[]
whilen>1:
foriinrange(2,n+1):
ifn%i==0:
n=n/i
l.append(str(i))
break
print'%d='%n1+'*'.join(l)
Kunz Kunz sun***[email protected]年前(2017-05-09)
#0 Almighty 132***[email protected]参考方法:
#!/usr/bin/envpython3
frommathimportsqrt
flag=0
n=int(input("输入一个整数:"))
print("%d="%n,end="")
m=int(sqrt(n))+1
forjinrange(n):
foriinrange(2,m):
ifn%i==0:
ifn==i:
flag=1
print("%d"%i,end='')
else:
print("%d*"%i,end='')
n/=i
break
ifflag==1:
break
Almighty Almighty 132***[email protected]年前(2017-05-29)
#0 Mark 104***[email protected]这种写法能够运行更大的数字
#!/usr/bin/python3
x=input("输入一个正整数:")
ifx.isdigit()andint(x)>0:
x=int(x)
t,i=1,2
print(x,end="=")
whilet>=0:
ifx%i==0:
print(i,end="")
x/=i
t=x-i
ifx!=1:
print("*",end="")
whilex%iandx!=1:
i+=1
else:
print("请输入正确的正整数")Mark Mark 104***[email protected]年前(2017-06-27)
#0 CosmosHua cos***[email protected]简明解法:
deffactor(n):
fac=[]
hf=n//2
whilen>1:
foriinrange(2,hf+1):
ifn%i==0:
n//=i;fac.append(i);break
returnfac
n=int(input("inputanumber:"))
print(n,"=",factor(n))CosmosHua CosmosHua cos***[email protected]年前(2017-07-11)
#0 kevinjin 314***[email protected]参考方法:
#!/usr/bin/python
#-*-coding:UTF-8-*-
num=raw_input('输入一个整数:\n')
num=int(num)
print'%d='%num,
i=2
whilei<=num:
ifnum%i==0:
ifnum==i:
print'%d'%i,
break
else:
num=num/i
print'%d*'%i,
else:
i+=1
kevinjin kevinjin 314***[email protected]年前(2017-07-24)
#0 小差罗 675***[email protected]下测试办法比较蠢但是挺好理解的吧循环次数不多,定义素数函数,能被素数整除就输出
importmath
defisprime(num):
flag=1
foriinrange(2,int(math.sqrt(num))+1):
ifnum%i==0:
flag=0
break
ifflag:
returnTrue
else:
returnFalse
num=int(input('inputanumber:'))
print(num,'=',end='')
while(notisprime(int(num))):
foriinrange(2,int(num)):
ifnum%i==0:
print(i,'*',end='')
num/=i
break
print(int(num))
小差罗 小差罗 675***[email protected]年前(2017-09-12)
#0 大大大大大大大熊 382***[email protected]参考方法:
importmath
print("请输入一个正整数:")
n=int(input())
ifn<=0:
print("请输入正整数")
i=2
ifn!=1:
whilei!=n:
ifn%i==0:
print(i)
n=n//i
else:
i+=1
print(i)
else:
print(n)大大大大大大大熊 大大大大大大大熊 382***[email protected]年前(2017-09-19)
#0 wuhangxiang yef***[email protected]参考方法:#!/usr/bin/python
#-*-coding:UTF-8-*-
n=2
deffenjie(num):
globaln
whilen<=num:
ifn==num:
printn
break
elifn
延伸文章資訊
- 1質因數分解- Python 教學 - STEAM 教育學習網
這篇文章會介紹使用Python 變數的計算、while 迴圈、for 迴圈、input 指令和if 判斷式,做出一個使用者輸入數字後,判斷數字是否為質數,如果不是質數,就將其做質因數 ...
- 2python:整数的质因数分解(因式分解的完美方法) - 知乎专栏
这本是一个很常见很基础的问题。 但我今天的方法应该是“很接近完美”的方法了。特别是其中判别质数的方法应该是最简单的了。def nxyz(fi): # 整数的因式分解公式, ...
- 3Python實現正整數分解質因數操作示例- IT閱讀 - ITREAD01 ...
本文例項講述了Python實現正整數分解質因數操作。 ... 遇到一個Python程式設計練習題目:將一個正整數分解質因數。 ... 線上計算器_標準計算器:
- 4python練習——將正整數分解成為質因數(迴圈、終止 - 程式人生
技術標籤:python練習'''Python 練習例項14 題目:將一個正整數分解質因數。例如:輸入90,打印出90=233*5。 程式分析:對n進行分解質因數, ...
- 5python 将一个正整数分解质因数。例如:输入90,打印出90=2*3 ...