牛客網計算機考研複試 KY3 約數的個數

2022-05-26 16:48:12 字數 868 閱讀 3165

點這裡題目描述:

輸入n個整數,依次輸出每個數的約數的個數

思路1:

對每乙個數計算其公約數,遍歷1到sqrt(n)之間的數。

**1:

#include using namespace std;

int main()

cout << cnt << endl;}}

return 0;

}

思路2:當n非常大的時候,第一種方法顯然會超時,這時我們可以使用素數篩來進行解題。

首先我們要是知道 約數個數定理(不明白可以點鏈結檢視)

通過 埃氏篩法得到素數。

由於乙個數x可以質因數分解為小於等於x的素數的n次方的乘積,我們通過計算素數的冪,然後將每個冪+1相乘,得到的就是所有的約數個數。

例如:

**2:

#include using namespace std;

const int maxn = 4e4;

bool is_prime[maxn];

vectorprime;

void init()

cnt.push_back(t);}}

if(x>1)

int ans = 1;

for(int i=0;i> n && n!=0 &&n!=eof)

}return 0;

}

牛客網計算機考研複試 KY30 進製轉換

點這裡題目描述 將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。思路 模擬十進位制轉為二進位制的過程,用string儲存該數,遍歷這個string,每次保留模2的數,然後除2就行。如十進位制123 十進位制 除二 模二 123 61 1 061 30 1 030 15 0 015 ...

牛客網計算機考研複試 KY8 整數拆分

點這裡題目描述 乙個整數總可以拆分為2的冪的和,例如 7 1 2 4 7 1 2 2 2 7 1 1 1 4 7 1 1 1 2 2 7 1 1 1 1 1 2 7 1 1 1 1 1 1 1 總共有六種不同的拆分方式。再比如 4可以拆分成 4 4,4 1 1 1 1,4 2 2,4 1 1 2。用...

牛客網計算機考研複試 KY9 成績排序

點這裡題目描述 用一維陣列儲存學號和成績,然後,按成績排序輸出。思路 對結構體排序就行了。這裡自己第一遍寫的犯了乙個錯,對把學號id定義為了string型別,在排序的時候導致了錯誤,因為字串比較的時候是從左到右按照ascii碼比較,當比較 13 和 9 的時候,反而 9 13 所以如果題目裡的學生i...