作者loveme00835 (高金素箍)
看板C_and_CPP
標題Re: [問題] c++因數
時間Thu Aug 4 16:15:53 2011
※ 引述《wayne79 (wayne)》之銘言:
: 標題: [問題] c++因數
: 時間: Thu Aug 4 14:56:42 2011
:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: c++
:
: 問題:輸入二個正整數m,n 求因式如下圖
: http://ppt.cc/Bo1(
:
: 我寫的程式
: <include省略>
: int main()
: {
: int a,b,i,j;
: cout<<"輸入兩個正整數:";
: cin>>a;
: cin>>b;
:
: for(i=1;i<=b;i++)
: {
: cout<<i<<"的因數有"<<endl;
:
: }
: system("pause");
: return 0;
: }
:
:
: 昨天發的文讓大家看不懂造成麻煩抱歉
你連題目都打錯...遇到不會寫的題目, 解決步驟如下:
1. 分解關鍵字
2. 搜尋關鍵字定義
3. 以關鍵字作為子問題, 先解決子問題
子問題都處理完, 對這題來說原問題也解決了, 首先找尋「因數」
的定義:
"假如整數a除以b,結果是無餘數的整數,那麼我們稱b就是a的
因數。"
取餘數有運算子%可以幫我們做到:
a % b =
a 除以 b 的餘數
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
如果該數為 0, 表示
b 是 a 的因數
if(
a 除以 b 的餘數 為 0 )
{
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
b 是 a 的因數
}
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
如果要找出 8 所有的因數, 最無腦的方法是從 1 試到 8, 每一個
數字都去試試是不是 8 的因數:
for( b 從 1 到 a )
{
if(
a 除以 b 的餘數 為 0 )
{
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
b 是 a 的因數
}
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
}
然後對區間 [left, right]內所有整數都要這樣做, 只是再包一層
簡單的迴圈而已..
就算你敢問這種花點時間看語法書就能解的問題, 我也不想給你解
答...
--
★ ★ ★ ★
★ ★ ★ ███ ███ █ █▌█ ██◣ ███ ▋▋█ ★ ★ ★
█▂█ █▃█ █ ███ █▆█ █▄█ ███
★ ★ █ ◣ █ █ █ ▋██ █▆◤ ███ ███ ★ ★
Kim Jae Kyung Koh Woo Ri Cho Hyun Young Kim Ji Sook
φwindyhorse
No Eul Oh Seung A Jung Yoon Hye
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.197.115
→ james732:覺得貼這篇文章+上色所花的心力,比直接給他答案還辛苦XD 08/04 16:18
推 horngsh:超過a/2(包含)以後的數,就不會是a的因數了.比如:a = 8, 08/04 16:31
→ horngsh:5,6,7,8就不會是8的因數. 08/04 16:31
→ horngsh:上面說錯了, 是(不包含)才對 08/04 16:32
x 是 x 的因數唷~ :)
→ tropical72:要套的話:因數永遠是成對的,判斷到 sqrt(a) 即可。 08/04 16:38
我想到stack @"@
※ 編輯: loveme00835 來自: 140.121.197.115 (08/04 16:40)
推 KTFGU:推 08/04 16:41
→ wayne79:所以是for 裡面串 if + else? 08/04 18:05
→ wayne79:ps老師上課都印講義可是鑽研講義第三天了真的想不出來 08/04 18:05
→ wayne79:我在試試看真的解不出來在請教您吧 08/04 18:06
→ tropical72:認真過的屍體真的不該只是那樣而已 XD 08/04 18:14
→ firejox:質因數分解 DFS遍歷... 08/04 21:24
→ firejox:建表也可... 08/04 21:30
→ horngsh:拿DS的書上的pseudo code來實作程式, 這樣進步會很快! 08/05 08:02
推 xatier:推 08/05 12:31
推 POSIX:哇 ~又出現了 招牌彩圖解說!!!XD 08/05 14:28