ALGO-117演算法訓練 友好數(c++)
阿新 • • 發佈:2018-12-27
演算法訓練 友好數
時間限制: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; }