《演算法筆記》5 5小節 數學問題 質因子分解

2022-07-18 08:36:12 字數 1089 閱讀 1058

求1-n內的完數,所謂的完數是這樣的數,它的所有因子相加等於它自身,比如6有3個因子1,2,3,1+2+3=6,那麼6是完數。即完數是等於其所有因子相加和的數。
測試資料有多組,輸入n,n資料範圍不大。
對於每組輸入,請輸出1-n內所有的完數。如有案例輸出有多個數字,用空格隔開,輸出最後不要有多餘的空格。
一開始想複雜了,資料沒給那麼大,暴力即可,注意換行

/*#includeusing namespace std;

const int maxn=100010;

int prime[maxn],pnum=0;

bool p[maxn]=;

void findprime()

} for(int i=6;i<=n;i++)

;void findprime();

void findprime()

for(int i=0;i乙個數如果恰好等於它的各因子(該數本身除外)子和,如:6=3+2+1,則稱其為「完數」;

若因子之和大於該數,則稱其為「盈數」。求出2 到60 之間所有「完數」和「盈數」,並以如

下形式輸出: e: e1 e2 e3 ......(ei 為完數) g: g1 g2 g3 ......(gi 為盈數)

無按描述要求輸出(注意eg後面的冒號之後有乙個空格)。

模擬就好了,注意去重,還有只需要到sqrt即可。

#includeusing namespace std;

int e[60],g[60];

int num1=0,num2=0;

int main()

} if(sum==i)

if(sum>i)

//printf("i=%d sum=%d\n",i,sum);

} printf("e: ");

for(int i=0;iprintf("g: ");

for(int i=0;ireturn 0;

}

《演算法筆記》5 4小節 數學問題 素數

題目描述 輸入乙個整數n 2 n 10000 要求輸出所有從1到這個整數之間 不包括1和這個整數 個位為1的素數,如果沒有則輸出 1。輸入輸入有多組資料。每組一行,輸入n。輸出輸出所有從1到這個整數之間 不包括1和這個整數 個位為1的素數 素數之間用空格隔開,最後乙個素數後面沒有空格 如果沒有則輸出...

《演算法筆記》5 4小節 數學問題 素數

output the k th prime number.輸入k 10000 輸出the k th prime number.樣例輸入 copy 1050 樣例輸出 copy 29229 注意maxn的取值大小,我這裡取了1000000.切記打表一次就行,不能把find prime函式放在while...

《演算法筆記》5 1小節 數學問題 簡單數學

題目描述 用小於等於n元去買100隻雞,大雞5元 只,小雞3元 只,還有1 3元每只的一種小雞,分別記為x只,y只,z只。程式設計求解x,y,z所有可能解。輸入 測試資料有多組,輸入n。輸出 對於每組輸入,請輸出x,y,z所有可行解,按照x,y,z依次增大的順序輸出。樣例輸入 copy 45 樣例輸...