Advertisement
Riposati

2145

Nov 19th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.89 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int main(){
  6.  
  7.     int m,n;
  8.     vector<int>divisoresM;
  9.     vector<int>divisoresN;
  10.  
  11.     scanf("%d %d",&m,&n);
  12.  
  13.     while(m||n){
  14.  
  15.         bool f1 = false,f2 = false;
  16.         int sumDivisoresM=0,sumDivisoresN=0;
  17.  
  18.         int aux;
  19.         if(m > n){
  20.             aux = m;
  21.             m = n;
  22.             n = aux;
  23.         }
  24.  
  25.         sumDivisoresM = 1;
  26.         divisoresM.push_back(1);
  27.         for(int i = 2; i * i <= m; ++i){
  28.             if(m % i == 0){
  29.                 sumDivisoresM += i;
  30.                 divisoresM.push_back(i);
  31.                 if (i * i == m) continue;
  32.                 sumDivisoresM += m / i;
  33.                 divisoresM.push_back(m / i);
  34.             }
  35.         }
  36.  
  37.         sumDivisoresN = 1;
  38.         divisoresN.push_back(1);
  39.         for(int i = 2; i * i <= n; ++i){
  40.             if(n % i == 0){
  41.                 sumDivisoresN += i;
  42.                 divisoresN.push_back(i);
  43.                 if (i * i == n) continue;
  44.                 sumDivisoresN += n / i;
  45.                 divisoresN.push_back(n / i);
  46.             }
  47.         }
  48.  
  49.         for(int i=0;i<divisoresM.size();i++){
  50.             if(sumDivisoresN==divisoresM[i]){
  51.                 f1 = true;
  52.                 break;
  53.             }
  54.         }
  55.         for(int i=0;i<divisoresN.size();i++){
  56.             if(sumDivisoresM==divisoresN[i]){
  57.                 f2 = true;
  58.                 break;
  59.             }
  60.         }
  61.  
  62.         if(f1 && f2){
  63.             printf("Friends and lovers <3\n");
  64.         }else if(sumDivisoresM==sumDivisoresN){
  65.             printf("Almost lovers!\n");
  66.         }else if((n%sumDivisoresM==0) && (m%sumDivisoresN!=0)){
  67.             printf("%d friendzoned %d!\n",n,m);
  68.         }else{
  69.             printf("No connection.\n");
  70.         }
  71.         divisoresM.clear();
  72.         divisoresN.clear();
  73.         scanf("%d %d",&m,&n);
  74.     }
  75.     return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement