#include <iostream> #include <cstdio> #include <cmath> #include <algorithm> using namespace std; struct num{ int a;//数 int b;//因子和 }; int factsum(int num){ int sum=1; for(int i=2;i<=sqrt(num*1.0);i++){ if(num%i==0){ sum+=i; if(i!=num/i){ sum+=num/i; } } } return sum; } int close[5001]={}; void printnum(int m,int n){ for(int i=m;i<=n;i++){ if(close[i]!=0){ continue; } int a=i; int b=factsum(i); int bfact=factsum(b); if(a==bfact&&a!=b){ close[a]=1; close[b]=1; if(a>b) swap(a,b); cout<<a<<" "<<b<<endl; // close[clnum].a=a; // close[clnum].b=b; } } } int main(){ int m,n; cin>>m>>n; printnum(m,n); return 0; } |
Double click to view unformatted code.