Hãy tìm số hoàn thiện nhỏ nhất trong mảng 1 chiều các số nguyên nếu mảng không có số hoàn thiện thì trả về 1

5 987 4
Hãy tìm số hoàn thiện nhỏ nhất trong mảng 1 chiều các số nguyên  nếu mảng không có số hoàn thiện thì trả về  1

Đang tải... (xem toàn văn)

Thông tin tài liệu

Bài 152: Hãy tìm số hoàn thiện nhỏ mảng chiều số nguyên Nếu mảng số hoàn thiện trả -1 #include #include #include #define MAX 100 void nhap (int a[], int &n) { { printf("\nNhap so phan tu: "); scanf("%d", &n); if(n MAX) { printf("\nSo phan tu khong hop le Xin kiem tra lai !"); } }while(n MAX); for(int i = 0; i < n; i++) { printf("\nNhap a[%d]: ", i); scanf("%d", &a[i]); } } void xuat(int a[], int n) { for(int i = 0; i < n; i++) { printf("%4d", a[i]); } } int kiemtrahoanthien(int n) { int i = 1; int S = 0; while(i < n) { if(n % i == 0) { S = S + i; } i++; } if(S == n) return 1; else return 0; } int timvitrisohoanthiendau(int a[], int n) { for(int i = 0; i < n; i++) { if(kiemtrahoanthien(a[i]) == 1) { return i; } } return -1; } int TimHoanThienBeNhat(int a[], int n, int ViTriHoanThienDau) { int HoanThienMin = a[ViTriHoanThienDau]; for (int i = ViTriHoanThienDau + 1; i < n; i++) { if (kiemtrahoanthien(a[i]) == && a[i] < HoanThienMin) { HoanThienMin = a[i]; } } return HoanThienMin; } int main() { int n; int a[MAX]; nhap(a, n); xuat(a, n); int vitrihoanthiendau = timvitrisohoanthiendau(a, n); if(vitrihoanthiendau == -1) { printf("\nmang khong co so hoan thien"); } else { printf("\nVi tri hoan thien dau la %d", vitrihoanthiendau); int hoanthienmin = TimHoanThienBeNhat(a, n, vitrihoanthiendau); printf("\nso hoan thien be nhat la %d", hoanthienmin); } getch(); return 0; }

Ngày đăng: 19/10/2016, 22:32

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan