#include<iostream> #include<algorithm> #include<math.h> #include<stdio.h> #include<stdlib.h> #include<string.h> #include<cstring> #include<string> #include<sstream> using namespace std; int isqm(int a) { int sum1=0,sum2=0; for(int i=1;i<=a/2;i++) { if(a%i==0) sum1+=i; } for(int i=1;i<=sum1/2;i++) { if(sum1%i==0) sum2+=i; } if(sum2==a&&sum1!=a) return sum1; else return -1; } int main() { int m,n; cin>>m>>n; int k[5000]; memset(k,0,sizeof(k)); for(int i=m;i<=n;i++) { int h=isqm(i); if(h!=-1&&k[i]==0) { cout<<i<<" "<<h<<endl; k[h]=1; k[i]=1; } } return 0; } |
Double click to view unformatted code.