HDUOJ:2040円満

著作権:qq836678589 https://blog.csdn.net/weixin_43924623/article/details/90693474

亲和数
時間制限:2000/1000 MS(Javaの/その他)メモリの制限:32768分の65536 K(Javaの/その他)
の合計提出(S):57787受理提出(S):35159

問題の説明

220の自然界に見られるの研究、数に関するすべての真の数(つまり、数自体について、ではない)で、古代ギリシャの数学者ピタゴラスと次のとおりです。

1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284。

約284の全ての実数は142、1,2,4,71で、正確に220まで追加。このような数のために非常に驚くべきことであった、と友好的と呼ばれます。一般的に、約2番号の数のいずれかの真の数は、別の番号であり、2つの数字が友好的です。

あなたの仕事は、与えられた二つの数は友好的であるかどうかを判断するためにプログラムを書くことです

入力の
最初の行の入力データ数Mを含み、M行、各行一例として、二つの整数A、Bを含有した。ここで、0 <= A、B <= 600000。

出力
各試験例えば、A及びBは、そうでなければ出力NO、出力、YES友好的である場合。

サンプル入力
2
220 284
100 200

サンプル出力
YES
NO

#include<iostream>
using namespace std;
int sum(int a){
	int i,aum=0;
	for(int i=1;i<=a/2;i++){
		if(a%i==0)aum+=i;
	}
	return aum;
}
int main(){
	int a,n,m;
	cin>>a;
	while(a--){
		cin>>n>>m;
		if(sum(n)==m && sum(m)==n){
			cout<<"YES"<<endl;
		}else{
			cout<<"NO"<<endl;
		}
	}
	return 0;
} 

**概要:**我々は最初の1に加えて、数について真実であるかを知る必要があり、それ自体が外については本当に数で割り切れる自分の番号を呼び出すことができます。

おすすめ

転載: blog.csdn.net/weixin_43924623/article/details/90693474