1. 程式人生 > >ALGO-117演算法訓練 友好數(c++)

ALGO-117演算法訓練 友好數(c++)

 演算法訓練 友好數  

時間限制:1.0s   記憶體限制:256.0MB

    

問題描述

  有兩個整數,如果每個整數的約數和(除了它本身以外)等於對方,我們就稱這對數是友好的。例如:
  9的約數和有:1+3=4
  4的約數和有:1+2=3
  所以9和4不是友好的。
  220的約數和有:1 2 4 5 10 11 20 22 44 55 110=284
  284的約數和有:1 2 4 71 142=220
  所以220和284是友好的。
  編寫程式,判斷兩個數是否是友好數。

輸入格式

  一行,兩個整數,由空格分隔

輸出格式

  如果是友好數,輸出"yes",否則輸出"no",注意不包含引號。

樣例輸入

220 284

樣例輸出

yes

資料規模和約定

  兩個整數都小於10000

#include <iostream>
using namespace std;

int main(int argc, char** argv) {
	int m,n;
	cin>>m>>n;
	int a=0,b=0;
	for(int i=1;i<=m/2;i++)
		if(m%i==0)
			a+=i;
	for(int i=1;i<=n/2;i++)
		if(n%i==0)
			b+=i;
	if(a==n && b==m)
		cout<<"yes"<<endl;
	else
		cout<<"no"<<endl;
	return 0;
}