Liny_@NotePad

沉迷ACG中

求亲密数对

YOYO posted @ 2009年3月12日 21:28 in 【算法】与【数据结构】 with tags 亲密数对 , 2373 阅读

= =

  1. #include<iostream>
  2. using namespace std;
  3.  
  4. int getSumOfFactors(int n){
  5.         int sum = 1;
  6.         for(int i=2; i<=n/2; i++){
  7.                 if(n%i==0)sum+=i;
  8.         }
  9.         return sum;
  10. }
  11.  
  12. void getChummyPairs(int A[][2], int start, int end, int &n){
  13.         for(int i = start; i<=end; i++){
  14.                 int j = getSumOfFactors(i);
  15.                 if(j>=i)continue;
  16.                 if(getSumOfFactors(j)==i){
  17.                         A[n][0] = j, A[n][1] = i;
  18.                         n++;
  19.                 }
  20.         }
  21. }
  22.  
  23. int main(){
  24.         int A[500][2];
  25.         int start,end;
  26.         int n = 0;
  27.  
  28.         cout<<"请输入范围下界:";
  29.         cin>>start;
  30.         cout<<"请输入范围上界:";
  31.         cin>>end;
  32.        
  33.         getChummyPairs(A,start,end,n);
  34.  
  35.         cout<<"在"<<start<<"~"<<end<<"范围内的亲密数对有"<<n<<"对:"<<endl;
  36.         for(int i = 0; i<n; i++){
  37.                 cout<<A[i][0]<<" "<<A[i][1]<<endl;
  38.         }
  39.  
  40.         return 0;
  41. }

  • 无匹配

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter