題目要求:
根據數論的知識可知任何一個合數都可以寫成幾個質數相乘的形式,這幾個質數都叫做這個合數的質因數。例如24=2*2*2*3。把一個合數寫成幾個質數相乘的形式表示,叫做分解質因數。對于一個質數,它的質因數可定義為它本身。編寫一個程序實現分解質因數。
# include "stdio.h"
int isPrime(int a)
{ /*判斷a是否是質數,是質數返回1,不是質數返回0*/
int i;
for(i=2;i<=a-1;i )
if(a % i == 0)
return 0; /*不是質數*/
return 1; /*是質數*/
}
void PrimeFactor(int n)
{ /*對參數n分解質因數*/
int i;
if(isPrime(n)) printf("%d ",n);
else
{
for(i=2;i<=n-1;i )
if(n % i == 0)
{
printf("%d ",i); /*第一個因數一定是質因數*/
if(isPrime(n/i)) { /*判斷第二個因數是否是質數*/
printf("%d ",n/i);
break; /*找到全部質因子*/
}
else
PrimeFactor(n/i); /*遞歸地調用PrimeFactor 分解n/i */
break;
}
}
}
main()
{
int n;
printf("Please input a integer for getting Prime factor\n") ;
scanf("%d",&n);
PrimeFactor(n); /*對n分解質因數*/
getche();
}
運行結果:
運行結果
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!