題目:求乙個數的質因數分解,比如輸入90,輸出2*3*3*5。解體思路:
要求乙個數n的質因數分解,首先求出n以內的所有質數,將其放入prime陣列內,然後再讓prime[i]去除n,如果能夠整除,那麼這個prime[i]就是n的質因數,否則不是。
求prime的方法是篩法求素數。
**實現
#include#includeposted @using
namespace
std;
bool isprime(int number);//
判斷number是否為素數
void printprime(int number);//
查詢0...number以內的所有素數,沒查到乙個輸出
void printarray(int arry,int len);//
列印陣列
void getprime2(int number,int prime);//
通過isprime(int number)方法來求素數陣列
void getprime3(int number,int prime);//
直接在方法內實現isprime(int number)
//篩法求素數
int getprime(int number,int
prime)
for(i=2;i<=sqrt(number);i++)//
number的質因數肯定小於sqrt(n)}}
for(i=2;i<=number;i++)
}printarray(prime,count);
return
count;}//
判斷是否是素數
bool isprime(int
number)
}return
flag;}//
列印2...number的素數
void printprime(int
number)
}//cout
//列印陣列
void printarray(int arry,int
len)
//將number以內的素數儲存在prime中
void getprime2(int number,int
prime)
}printarray(prime,count);}//
將number以內的素數儲存在prime中
void getprime3(int number,int
prime)
}if(flag)
}printarray(prime,count);
}void
main()
}delete prime;
system(
"pause");
}
2012-10-13 13:49
xwdreamer 閱讀(
...)
編輯收藏
面試題 求質因數分解
題目 求乙個數的質因數分解,比如輸入90,輸出2 3 3 5。解體思路 要求乙個數n的質因數分解,首先求出n以內的所有質數,將其放入prime陣列內,然後再讓prime i 去除n,如果能夠整除,那麼這個prime i 就是n的質因數,否則不是。求prime的方法是篩法求素數。實現 include ...
質因數分解
題目16 將乙個正整數分解質因數。例如 輸入90,列印出90 2 3 3 5。程式分析 對n進行分解質因數,應先找到乙個最小的質數k,然後按下述步驟完 成 1 如果這個質數恰等於n,則說明分解質因數的過程已經結束,列印出即可。2 如果n k,但n能被k整除,則應列印出k的值,並用n除以k的商,作為新...
質因數分解
短除法 求乙個數分解質因數,要從最小的質數除起,一直除到結果為質數為止。分解質因數的算式的叫短除法 和除法的性質差不多,還可以用來求多個個數的公因式 求 最大公因數的一種方法,也可用來求 最小公倍數。求幾個數最大公因數 的方法,開始時用觀察比較的方法,即 先把每個數的因數找出來,然後再找出公因數,最...