View Code of Problem 93

#include<bits/stdc++.h>
using namespace std;

int qms(int x) { //计算亲密数 qms =亲密数 
    int res = 0; 
    for(int i=1; i<=x/2; i++) {
        if(x % i == 0) {
            res += i;
        }
    }
    return res; 
}

int main(){
	int m, n;
	scanf("%d %d", &m, &n);
	if(m > n) swap(m, n);  //这句不能省 
	
	for(int i = m; i<n; i++){
        int j = qms(i); //j是i的亲密数,再对j求亲密数,若这个结果等于i,那就说明互为亲密 
        if(qms(j) == i && i != j && i < j){ //题目要求输出小的在前,大的在后。亲密数定义二者不能相等 
            printf("%d %d\n", i, j);  
        }
    }
	return 0;
}

Double click to view unformatted code.


Back to problem 93