Bài 139: Tìm số hoàn thiện cuối
--------------------------------------------------------------------------------
Yêu cầu: Tìm vị trí số hoàn thiện cuối cùng trong mảng một chiều các số nguyên. Nếu mảng không có số hoàn thiện thì trả về giá trị là -1
Code:
Code:
#include <stdio.h>
#include <conio.h>
void NhapMang(int a[],int &n)
{
printf("nhap n:");scanf("%d",&n);
for(int i=0;i<n;i++)
{
printf("nhap a[%d]",i);
scanf("%d",&a[i]);
}
}
int KiemTraHoanThien(int k)
{
int s=0;
for(int i=1;i<k;i++)
if(k%i==0)
s+=i;
if(s==k)
return 1;
return 0;
}
int HoanThienCuoi(int a[],int n)
{
for(int d=n-1;d>=0;d--)
if(KiemTraHoanThien(a[d])==1)
return d;
return -1;
}
void main()
{
int a[100];
int n;
NhapMang(a,n);
int Tam=HoanThienCuoi(a,n);
printf("%d\n",Tam);
}