[C] 152 hãy tìm số hòan thiện nhỏ nhất trong mảng 1 chiều các số nguyên. Nếu mảng ko có trả về 0

Tác giả:

  • Trần Hán Huy – tranhanhuy.wordpress.com

Sách:

  • Bài tập kĩ thuật lập trình C/C++ – Nguyễn Tấn Trần Minh Khang

Đề bài

  • 152 hãy tìm số hòan thiện nhỏ nhất trong mảng 1 chiều các số nguyên. Nếu mảng ko có trả về 0

Code

int SoHoanThien(int n)
{
   int tong=0;
   for (int i=1 ; i<n; i++)
       if(n%i==0)
          tong = tong + i;
   if (tong == n)
      return 1;
   return 0;
}
int SoHoanThienNhonhat(int a[],int n)
{
   int dem=0;
   int min;
   for(int i=0; i<n; i++)
   {
       if(SoHoanThien(a[i])==1)
       {
           dem ++;
           min = a[i];
           break;
       }
   }
   if (dem ==0)
       return 0;
   for (i=i+1; i<n; i++)
   {
       if ((SoHoanThien(a[i])==1) && (min>a[i]))
       {
           min = a[i];
       }
   }
   return min;
}

Leave a comment