求愛数 by C++
方針
割り切れた数を加算していくだけ
サンプルコード
#include <iostream> using namespace std; int IsFriend(int a,int b); int GetFactorSum(int num); //-------------------------------------------------------- // Main //-------------------------------------------------------- int main() { int a,b; cin >> a; cin >> b; cout << a << " and " << b ; if( IsFriend(a,b) ) cout << " are friend\n" << endl; else cout << " are not friend\n" << endl; return 0; } //-------------------------------------------------------- // 友愛数判定 //-------------------------------------------------------- int IsFriend(int a,int b) { int A = GetFactorSum(a) == b; int B = GetFactorSum(b) == a; if( A && B ) return 1; return 0; } //-------------------------------------------------------- // 約数の和を求める //-------------------------------------------------------- int GetFactorSum(const int num) { const int num2 = num>>1; // num2 = num/2 int sum = 0; for(int i=1;i<=num2;i++) { if( !(num%i) ) sum += i; } return sum; }