C程序找到所有素數因子。例如:24將有2 2 2 3爲answer.I已經使用recursion.help我出去please.the輸出12來:2,3,4,6未如預期C程序找到所有素數因子。例如:24將有2 2 2 3作爲答案
#include <stdio.h>
int primeno(int i)
{
int j,afg;
for(j=2;j<i;j++)
{
if((i%j)==0)
afg=0;
}
if(j==i)
afg=1;
return afg;
}
void prime(int num)
{
int i;
for(i=2;i<num;i++)
{
if(((primeno(i))==1)&&((num%i)==0))
printf("%d\n",i);
else if((!primeno(i))&&((num%i)==0))
prime(i);
}
}
int main()
{
int num;
printf("enter the number whose prime factors are to be found\n");
scanf("%d",&num);
prime(num);
return 0;
}
也許你可以爲了正確地格式化代碼,使其更具可讀性? – 2014-09-29 14:11:52
除非我誤讀,否則您使用的算法稱爲** trial division **。你可以谷歌。另外,你應該看看C代碼風格指南。你的代碼不清楚(特別是你沒有空格),也沒有幫你找到問題。可讀代碼更易於分析和調試。 – slezica 2014-09-29 14:12:02
你的代碼不會編譯(primeno隱式聲明,main的返回類型是隱式的)。如果您修復了所有編譯器錯誤和警告,我們可以嘗試構建並運行並進行調試。 – nmichaels 2014-09-29 14:13:31