當(dāng)前位置:首頁>職場>c語言分解質(zhì)因數(shù)的代碼(c語言面試題-分解質(zhì)因數(shù))
發(fā)布時(shí)間:2024-01-24閱讀(21)
題目要求:
根據(jù)數(shù)論的知識可知任何一個(gè)合數(shù)都可以寫成幾個(gè)質(zhì)數(shù)相乘的形式,這幾個(gè)質(zhì)數(shù)都叫做這個(gè)合數(shù)的質(zhì)因數(shù)。例如24=2*2*2*3。把一個(gè)合數(shù)寫成幾個(gè)質(zhì)數(shù)相乘的形式表示,叫做分解質(zhì)因數(shù)。對于一個(gè)質(zhì)數(shù),它的質(zhì)因數(shù)可定義為它本身。編寫一個(gè)程序?qū)崿F(xiàn)分解質(zhì)因數(shù)。
# include "stdio.h"int isPrime(int a){ /*判斷a是否是質(zhì)數(shù),是質(zhì)數(shù)返回1,不是質(zhì)數(shù)返回0*/ int i; for(i=2;i<=a-1;i ) if(a % i == 0) return 0; /*不是質(zhì)數(shù)*/ return 1; /*是質(zhì)數(shù)*/}void PrimeFactor(int n){ /*對參數(shù)n分解質(zhì)因數(shù)*/ int i; if(isPrime(n)) printf("%d ",n); else { for(i=2;i<=n-1;i ) if(n % i == 0) { printf("%d ",i); /*第一個(gè)因數(shù)一定是質(zhì)因數(shù)*/ if(isPrime(n/i)) {/*判斷第二個(gè)因數(shù)是否是質(zhì)數(shù)*/ printf("%d ",n/i); break; /*找到全部質(zhì)因子*/ } else PrimeFactor(n/i);/*遞歸地調(diào)用PrimeFactor 分解n/i */ break; } }}main(){ int n; printf("Please input a integer for getting Prime factor
") ; scanf("%d",&n); PrimeFactor(n); /*對n分解質(zhì)因數(shù)*/ getche();}
運(yùn)行結(jié)果:

運(yùn)行結(jié)果
歡迎分享轉(zhuǎn)載→http://www.avcorse.com/read-228812.html
Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖