❶ python怎麼 用 for 循環求10的因數
❷ python,輸入一個數輸出這個數的素數因子,橫線里應該寫什麼
第一空填k+1
for j in range(2,k+1)
第二空填i
for i in range(2,num);
❸ python將一個正整數分解質因數.
nnotin[1]就是n不等於1
print'{}*'.format(index)是在最後將輸入的n列印成質因數,就是變成1*2*5這種樣式
❹ 使用python將一個正整數分解質因數。例如:輸入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的值,重復執行第一步。
程序源代碼:
實例(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def receNum(n):
print '{} = '.format(n),
if not isinstance(n, int) or n <= 0 :
print '請輸入一個正確的數字 !'
exit(0)
elif n in [1] :
print '{}'.format(n)
while n not in [1] : # 循環保證遞歸
for index in xrange(2, n + 1) :
if n % index == 0:
n /= index # n 等於 n/index
if n == 1:
print index
else : # index 一定是素數
print '{} *'.format(index),
break
receNum(90)
receNum(100)
以上實例輸出結果為:
90 = 2 * 3 * 3 * 5100 = 2 * 2 * 5 * 5
❺ python定義求最大公因子的函數,隨機生成二位數,輸出它們的最大公因子
這個其實很簡單,思路是通過列表推導式生成三個2位數的隨機數,再通過max內建函數取最大數
上代碼了
max( [random.randint(10, 99) for i in range(3)])
❻ python從鍵盤輸入一個整數值n,編程求它的所有因子之和,規定n不大於1000
n=int(input("pleaseinputaintegern:"))
result=0
foriinrange(1,n):
ifn%i==0:result+=i
print("thefactorofnsumis:%d"%result)
❼ Python編寫函數.求出一個數除了1和自身以外的因子。
deffun(n:int):
L=[]
foriinrange(2,n//2+1):
ifnotn%i:
L.append(i)
returnL
print(fun(256))
❽ python輸入一個正整數,求該數所有的因數
# 2021-05-17 Luke
while True:
num = input("請輸入一個正整數:")
i = 1
num_count = []
while i <= int(num):
if int(num) % i == 0:
num_count.append(i)
i += 1
print(num + "的公因數有:")
print(*num_count)
❾ 用Python編寫程序,從鍵盤輸入一個整數並判斷該數的類別:其因數之和等於數字本身的數稱為完全數
import sys
theNum = input('請輸入一個數:')
try:
theNum = int(theNum)
except ValueError:
print("請輸入一個整數!")
sys.exit()
# 因子
divisor = 1
# 因子的和
divisors = 0
# 求因子的和
while divisor < theNum:
if theNum % divisor == 0:
divisors += divisor
divisor += 1
if divisors == theNum:
print("{} 是完全數!\n".format(theNum))
else:
if divisors > theNum:
print("{0} 是豐沛數!\n".format(theNum))
else:
print("{0} 是不足數!\n".format(theNum))