分解質因數算法


題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。

分析:從1到N先找出最小的質因數,如果等於本身,那么說明只有一個質因數,如果不是,那么將該質因數打印出來,並將N/該質因數作為新的N值進行運算。

設計步驟:

  1、如果這個質數恰等於n,則說明分解質因數的過程已經結束,打印出即可。

  2、如果n!=k,但n能被k整除,則應打印出k的值,並用n除以k的商,作為新的正整數你n,重復執行第一步。

  3、如果n不能被k整除,則用k+1作為k的值,重復執行第一步。

代碼實現:

#python版

def count_number(value):
    n = 2
    while n <= value:
        while value != n: # 如果value等於n,說明只有一個質因數,否則就進行循環
            if value % n == 0: # 說明n為一個質因數
                print(n)
                value = value / n # 更新下一輪value的值
            else:
                break
        n += 1
    print(n-1) # 打印出最后一個值
#Cpp版


//將一個正整數分解質因數  
int main()  
{  
    int i,n;  
    printf("Please input an integer!\n");  
    scanf("%d",&n);  
    for(i=2;i<=n;i++)  
    {  
        while(n!=i)     //若i=n,則質因數就是n本身  
        {  
            if(n%i==0)  //若i是質因數,則打印出i的值,並用商給n賦新值  
            {  
                printf("%d\n",i);  
                n=n/i;  
            }  
            else break;//若不能被i整除,則算下一個i  
        }  
    }  
    printf("%d\n",n);   //這里是打印最后一個質因數,也就是等於i時的那個  
    return 0;  
}  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM