菜鳥練習華為級考題 質數因子

2021-07-23 10:02:47 字數 1041 閱讀 6511

國慶放假回來,繼續做一下華為機考題,確實難道不大,還是考基礎。廢話不多說,還是繼續刷題:

第一題是:質數因子。

功能:輸入乙個正整數,按照從小到大的順序輸出它的所有質數的因子(如180的質數因子為2 2 3 3 5 )

最後乙個數後面也要有空格

詳細描述:

函式介面說明:

public string getresult(long uldatainput)

輸入引數:

long uldatainput:輸入的正整數

返回值:

string

輸入描述:

輸入乙個long型整數

輸出描述:

按照從小到大的順序輸出它的所有質數的因子,以空格隔開。最後乙個數後面也要有空格。

輸入例子:

180

輸出例子:

2 2 3 3 5

解題思路:

借助數學的整除法,利用小於或等於這個數的素數去整除這個數,如果可以整除,將該素數進行儲存或直接輸出,所以這個題目的核心在於判斷乙個數是否為素數。

比如:180,我們先用n(這裡的n應該為2,3,4,5,6.。。。180或者是180,179,178,。。。5,4,3,2這種倒敘,這個取決於結果的輸出順序,  而且需要保證n是素數)去整除180,如果可以整除,然後不斷地除下去。 

素數判斷,就是利用整除性質,特殊情況主要是1,2。

用c編寫的**如下:

#include int main()

else

}printf("\n");

} return 0;

}//判斷是否為素數

int iszhishu(int y)

很明顯,方法2比方法1效率更高,因為它循壞的次數大大降低。

華為OJ 質數因子

質數因子 功能 輸入乙個正整數,按照從小到大的順序輸出它的所有質數的因子 如 180的質數因子為 2 2 3 3 5 詳細描述 函式介面說明 public string getresult long uldatainput 輸入引數 long uldatainput 輸入的正整數 返回值 strin...

華為筆試 質數因子

功能 輸入乙個正整數,按照從小到大的順序輸出它的所有質數的因子 如180的質數因子為2 2 3 3 5 最後乙個數後面也要有空格 詳細描述 函式介面說明 public string getresult long uldatainput 輸入引數 long uldatainput 輸入的正整數 返回值...

華為機試 質數因子

題目描述 功能 輸入乙個正整數,按照從小到大的順序輸出它的所有質因子 如180的質因子為2 2 3 3 5 最後乙個數後面也要有空格 詳細描述 函式介面說明 public string getresult long uldatainput 輸入引數 long uldatainput 輸入的正整數 返...