سلام
امروز یک برخلاف روز های دیگه کد سوال ACM رو حل نمی کنیم من به یک مبحث جالب به اسم عدد های دوست توی نت برخوردم و کد پیدا کردن اش رو نوشتم گفتم شاید قرار دادنش روی وبلاگ خالی از لطف نباشه ...

البته این میتونست یک مسئله ACM هم باشه به این صورت که 2 تا عدد بگیره بگه با هم دوست هستند یا نه !!

عدد های دوست اعدادی هستند که جمع مقسوم علیه هاشون برابر با عدد دیگه بشه مثل 220 و 284


برای اعداد زیر 100000 این خروجی رو داد برنامه:

6    6
28    28
220    284
496    496
1184    1210
2620    2924
5020    5564
6232    6368
8128    8128
10744    10856
12285    14595
17296    18416
63020    76084
66928    66992
67095    71145
69615    87633
79750    88730

#include<iostream>

using namespace std;

#define ull unsigned long long int

#define max 18446744073709551615

ull sumOfSub(ull inpt){

       ull i,sum=0;

       for(i=2;i*i<=inpt;i++){

              if(inpt%i==0){

                     sum+=i;

                     sum+=inpt/i;

              }

       }

       return sum+1;

}

int main(){

  ull a,b;

       for(a=2;a<max;a++){

       b=sumOfSub(a);

       if(b>=a&&a==sumOfSub(b))cout<<a<<"\t"<<b<<"\n";

       }

       return 0;

}