首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求因数,不是能用这个数的平方根当范围嘛,这样写,不对呢?该如何解决

2012-05-29 
求因数,不是能用这个数的平方根当范围嘛,这样写,不对呢?#include stdio.h#include math.hint main (vo

求因数,不是能用这个数的平方根当范围嘛,这样写,不对呢?
#include <stdio.h>
#include <math.h>
int main (void)
{
int m,s,i;
for (m = 2; m < 1000; m++)
{
s = 0;
for (i = 1; i <= sqrt(m); i++)  
if ((m % i) == 0) s = s + i;
if (s == m)
{
printf ("%d 是一个完数.它的因子是",m);
for (i = 1; i < m; i++)
if (m % i == 0) printf ("%d ",i);
printf ("\n");
}
}

return 0;
}

[解决办法]

C/C++ code
int main (void) {     int m,s,i,tmp;     for (m = 2; m < 1000; m++)     {         s = 0;         for (i = 1; i <= sqrt((double)m); i++)                if ((m % i) == 0) {                 s = s + i;                 tmp = m/i;                 if(tmp>i && tmp<m)                     s+=tmp;             }         if (s == m)         {             printf ("%d 是一个完数.它的因子是",m);             for (i = 1; i < m; i++)             {                 if (m % i == 0)                  {                     printf ("%d ",i);                 }             }                              printf ("\n");         }     }     return 0; } 

热点排行