#697: 互為好友數的數對中有沒有可能其中一數是完全平方數?


guoguy (Stephan)

學校 : 中國醫藥大學
編號 : 2712
來源 : [49.216.63.50]
最後登入時間 :
2020-12-22 14:25:05
b081. B. 友好數 -- 2007 NPSC 國中組決賽 | From: [218.211.230.114] | 發表日期 : 2008-10-18 19:39

我找因數的方法是從1~sqrt(n)通通都試過一遍,可以整除n的話,再找其對應的另一個因數,因為因數通常都是成對的嘛,除了完全平方數,那互為好友數的數對中有沒有可能其中一數是完全平方數?(我沒有判斷n是否為完全平方數就上傳了,AC)

程式碼:

#include <iostream>
#include <cmath>
using namespace std;

int main(){
   int n, m, tn; //tn為m的真因數總和
   while (cin >> n, n){
    m = 1;
    for (int i=2; i<=int(sqrt((double)n)); i++)
     if (n%i == 0)
        m += i + n/i; //此數若為完全平方數,那麼就不能這樣算了,但用NPSC給的測資來測試就AC了。互為好友數的數對中有沒有可能其中一數是完全平方數?
    if (m == n)
       cout << "=" << n << endl;
    else{
       tn = 1;
       for (int i=2; i<=int(sqrt((double)m)); i++)
       if (m%i == 0)
          tn += i + m/i;
    if (tn == n)
       cout << m << endl;
    else
       cout << 0 << endl;
    }
   }
}

 
#8105: Re:互為好友數的數對中有沒有可能其中一數是完全平方數?


a450 (要学会宽容)

學校 : 福建省福州第十九中学
編號 : 33926
來源 : [118.189.34.85]
最後登入時間 :
2016-04-05 21:29:33
b081. B. 友好數 -- 2007 NPSC 國中組決賽 | From: [27.155.80.133] | 發表日期 : 2013-08-17 14:32

 

应该是没有的... 不然代码是有瑕疵的 


 
ZeroJudge Forum