1 solutions
-
0
C :
#include<stdio.h> #include<math.h> int find(int x){ int sum=0,i,t=sqrt(x); for ( i=2; i<=t; i++) if (x%i==0) sum+=i+x/i; if (t*t==x) sum-=t; return sum; } int main(){ int n,a,b,c; scanf("%d",&n); for ( a=2; a<=n; a++){ b=find(a); c=find(b); if (a==c && a!=b && b<=n) printf("%d %d\n",a,b); } return 0; }
C++ :
#include <iostream> #include <cmath> using namespace std; int sum(int n){ int s,i; s=0; for(i=2;i<=sqrt(n);i++){ if(n%i==0){ if(i==n/i){ s=s+i; }else{ s=s+i+n/i; } } } return s; } void shudui(int n){ int i,s; for(i=2;i<=n;i++){ s=sum(i); if(sum(s)==i&&i!=s&&s<=n){ cout<<i<<" "<<s<<endl; } } } int main(){ int n; cin>>n; shudui(n); }
Python :
def yinZiHe(n): s=0 for i in range(2,n): if n%i==0: s+=i return s n=int(input()) for i in range(2,n+1): # i的因子和等于b b的因子和等于i if yinZiHe(yinZiHe(i))==i and yinZiHe(i)!=i and yinZiHe(i)<=n: print(i,yinZiHe(i))
- 1
Information
- ID
- 10797
- Time
- 1000ms
- Memory
- 16MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By