c語言問題,求解答~~~
自定義函數factorsum(number),它的功能是返回number的因子和,如factorsum(12)的返回值是16(1+2+3+4+6)。 在主函數中,輸入兩個正整數m和n(m>=1, n<=1000),調用factorsum函數,輸出m-n之間的所有完數,完數就是因子和與它本身相等的數。
要求有多組測試數據,每組輸入兩個正整數m和n。輸出m-n之間的所有完數,"%d "形式
最佳回答:
<p>#include "stdio.h"</p> <p>int factorsum(int number)</p> <p>{</p> <p> int i,sum=0;</p> <p> for(i=1;i<=number/2;i++)</p> <p> if(number%i==0)</p> <p> sum+=i;</p> <p> return sum;</p> <p>}</p> <p>void main()</p> <p>{</p> <p> int m,n;</p> <p> int i;</p> <p> while(1)</p> <p> {</p> <p> printf("請輸入m和n:");</p> <p> scanf("%d %d",&m,&n);</p> <p> if(m<1||n>1000||m>n)</p> <p> {</p> <p> printf("輸入錯誤,程序中止!\n");</p> <p> break;</p> <p> }</p> <p> printf("從%d到%d的所有完數是:",m,n);</p> <p> for(i=m;i<=n;i++)</p> <p> if(i==factorsum(i))</p> <p> printf("%d ",i);</p> <p> </p> <p> printf("\n");</p> <p> </p> <p> }</p> <p> </p> <p> </p> <p>}</p> <p></p>