思路:一個(gè)函數(shù)isShuSHU()用來(lái)判斷給定 的數(shù)是否是素?cái)?shù) 從1到n的一般,一個(gè)一個(gè)排查,看那些數(shù)能整除N,且是素?cái)?shù)。
10年積累的成都網(wǎng)站制作、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先制作網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有普洱免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
這個(gè)程序?qū)懙锰^(guò)復(fù)雜了,完全可以簡(jiǎn)單一點(diǎn)的。具體的算法是從2開始嘗試找出給你寫的數(shù)所有的質(zhì)因數(shù),并統(tǒng)計(jì)每一個(gè)質(zhì)因數(shù)出現(xiàn)的次數(shù)。分別保存在兩個(gè)數(shù)組中。
聲明一個(gè)int型變量i,在2至i*i=k的范圍內(nèi)遍歷,當(dāng)i能夠整除k時(shí),判斷i和k/i二者是不是質(zhì)數(shù),是則輸出i和(或)k/i,這樣就達(dá)到題目要求了。
聲明一int型變量n接收鍵盤輸入并限制為正數(shù)。另一int型變量i初值賦2,用i去除n,能被整除則輸出i為質(zhì)因數(shù),并將n賦值為n/i;不能整除則i增1再去除n的新值……如此反復(fù)至n==1為止。
如果nk,但n能被k整除,則應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)你n,重復(fù)執(zhí)行第一步。如果n不能被k整除,則用k+1作為k的值,重復(fù)執(zhí)行第一步。
求出區(qū)間[a,b]中所有整數(shù)的質(zhì)因數(shù)分解。輸入 輸入兩個(gè)整數(shù)a,b。輸出 每行輸出一個(gè)數(shù)的分解,形如k=a1*a2*a..(a1=a2=a..,k也是從小到大的)(具體可看樣例)。
int n,i;scanf(%d,&n);for(i=2;i=n;i++){//將2000換成n,也就是被除數(shù),除數(shù)比被除數(shù)大,除來(lái)也就沒有意義了 if(n%i==0){ printf(%-2d,i);n=n/i;i=1;//將2改為1后。
如果這個(gè)質(zhì)數(shù)恰等于n,則說(shuō)明分解質(zhì)因數(shù)的過(guò)程已經(jīng)結(jié)束,打印出即可。如果nk,但n能被k整除,則應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)你n,重復(fù)執(zhí)行第一步。
將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。
% 4 == 0;接下來(lái)用5去除,如果能整除(n % 5 == 0),則必有質(zhì)因數(shù)5,去除因子5(n /= 5),如此反復(fù),直到不能被整除;...,如此這般循環(huán)下去,直至這個(gè)數(shù)小于1,以上過(guò)程,就是質(zhì)因子分解過(guò)程。
1、這個(gè)程序?qū)懙锰^(guò)復(fù)雜了,完全可以簡(jiǎn)單一點(diǎn)的。具體的算法是從2開始嘗試找出給你寫的數(shù)所有的質(zhì)因數(shù),并統(tǒng)計(jì)每一個(gè)質(zhì)因數(shù)出現(xiàn)的次數(shù)。分別保存在兩個(gè)數(shù)組中。
2、將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。
3、然后定義 n, i 兩個(gè)變量,如下圖所示。接著使用scanf給n賦值,使用for循環(huán)。然后用while作為內(nèi)層循環(huán),使用printf打印i。最后使用if條件語(yǔ)句,運(yùn)行程序,如下圖所示,正整數(shù)分解為質(zhì)因子就完成了。
4、聲明一int型變量n接收鍵盤輸入并限制為正數(shù)。另一int型變量i初值賦2,用i去除n,能被整除則輸出i為質(zhì)因數(shù),并將n賦值為n/i;不能整除則i增1再去除n的新值……如此反復(fù)至n==1為止。
5、建議先用注釋寫邏輯布局,然后分塊寫代碼,最后集成一下。