#2730: 請高人指點


return3244 (3244)

學校 : 臺北市立成功高級中學
編號 : 9063
來源 : [220.136.176.195]
最後登入時間 :
2010-04-02 21:20:27
d010. 盈數、虧數和完全數 -- Sagit's C++ 程式設計 | From: [220.136.188.19] | 發表日期 : 2009-11-15 16:38

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int a,b,c,sum=0;
while(cin  >>b)
{
for(a=1; a<=sqrt(b); a++)
{
            if (b%a==0)
{   
c=b/a;
sum=sum+a+c;
}
    else
                    continue;
}
sum=sum-b;
     if  (sum>b)
          cout <<"盈數\n";
     else if(sum==b)
          cout <<"完全數\n";
     else
          cout <<"虧數\n";
     sum=0;
}
   

system("pause");
return 0;
}

請高人指點迷津
哪裡有不妥的地方
 
#2734: Re:請高人指點


abs (*夢)

學校 : 臺北市立第一女子高級中學
編號 : 6967
來源 : [140.112.25.40]
最後登入時間 :
2011-10-05 14:16:38
d010. 盈數、虧數和完全數 -- Sagit's C++ 程式設計 | From: [58.115.129.57] | 發表日期 : 2009-11-15 21:04

#include
#include
using namespace std;
int main()
{
int a,b,c,sum=0;
while(cin  >>b)
{
for(a=1; a<=sqrt(b); a++)
{
            if (b%a==0)
{   
c=b/a;
sum=sum+a+c;
}
    else
                    continue;
}
sum=sum-b;
     if  (sum>b)
          cout <<"盈數\n";
     else if(sum==b)
          cout <<"完全數\n";
     else
          cout <<"虧數\n";
     sum=0;
}
   

system("pause");
return 0;
}

請高人指點迷津
哪裡有不妥的地方


輸入的數字是完全平方數的時候

sqrt(b)會是正整數而被+兩次

 
ZeroJudge Forum