求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 樣例輸...