1樓:
n not in [1] 就是n不等於1
print '{format(index)是在最後將輸入的n列印成質因數,就是變成1*2*5這種樣式。
使用python將乙個正整數分解質因數。例如:輸入90,列印出90=2*3*3*5。應該要怎麼做?
2樓:深紅巨龍
對n進行分解質因數,應先找到乙個最小的質數k,然後按下述步驟完成:
(1)如果這個質數恰等於n,則說明分解質因數的過程已經結束,列印出即可。
(2)如果n<>k,但n能被k整除,則應列印出k的值,並用n除以k的商,作為新的正整數你n,重複執行第一步。
(3)如果n不能被k整除,則用k+1作為k的值,重複執行第一步。
程式源**:
例項(python
#!/usr/bin/python
# -*coding: utf-8 -*
def reducenum(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
reducenum(90)
reducenum(100)
以上例項輸出結果為:
將乙個正整數分解質因數。python3.6問題,輸出為空,是**出了問題,求大神解答
3樓:匿名使用者
第一是函式p(t,l)沒有返回,在函式裡修改列表l,是不能把結果帶回的,還有後面的**裡使用了p(t/h),p函式需要兩個引數,另外的**也有一些問題,分解質因數推薦寫成以下的形式。
4樓:
就是乙個簡單問題?怎麼我剛做了你這複雜多了的東西,還有人問這個太簡單等問題,
5樓:愛情轉正者
在整體**來說,你只是呼叫了第二個函式,而第乙個函式在第二個函式裡被呼叫。當呼叫走完第乙個函式的時候,重新回到了第二個函式,你的第二個函式,並沒有return。。。
這是估計分析的,不知道對不對。
將乙個正整數分解質因數。例如:輸入90,列印出90=2*3*3*5。
6樓:我走的慢
#include
int main()
//1:輸出最後乙個因子。一定是1,如果上面for有=num也輸出來了,所以只剩下1
//即:num==1;
//2:如果for沒有=num的情況,那麼,不一定是1的情況,可能還是其他,可以根據自己的需要改。
printf("%d",num);
return 0;}
c語言將乙個正整數分解質因數,望高手幫我詳細解釋一下程式?
7樓:4終
1、首先開啟, 新建乙個vc專案,新增標頭檔案。
2、新增main主函式,如下圖所示。
3、然後定義 n, i 兩個變數,如下圖所示。
4、接著使用scanf給n賦值,使用for迴圈。
5、然後用while作為內層迴圈,使用printf列印i。
6、最後使用if條件語句,執行程式,如下圖所示,正整數分解為質因子就完成了。
8樓:力恬然
什麼地方你沒有看懂啊。
將乙個正整數分解質因數。例如 :輸入90,列印出90=2*3*3*5 怎樣編寫程式
c語言,輸入乙個正整數,將這個正整數分解質因數
編寫程式輸入正整數n,計算1,編寫乙個程式輸入乙個正整數n,計算123354759,求前n項和
n和2n 1,遍歷,即可解決。include void main printf 4f n sum 怎麼用c語言編寫程式 輸入乙個正整數n,計算1 2 3 3 5 4 7 5 9 include int main void printf sum lf n sum return 0 試著執行吧,我沒上機...
給定乙個小於等於2的30次方的正整數,要求
include void main while n 0 printf 這個數是 d位數 l printf 正序輸出為 for i l 1 i 0 i printf 4d a i printf 逆序輸出為 for i 0 iprintf 4d a i 如果另乙個數不是整數,那必然有,如果另乙個是整數,...
Python的簡單問題,Python的乙個簡單問題
關於python的乙個小問題 20 python range 函式可建立乙個整數列表,一般用在 for 迴圈中。函式語法 range start,stop step 引數說明 start 計數從 start 開始。預設是從 0 開始。例如range 5 等價於range 0,5 stop 計數到 s...