Nhap so phan tu mang: 6
Nhap phan tu a[0] : 1
Nhap phan tu a[1] : 6
Nhap phan tu a[2] : 469
Nhap phan tu a[3] : 3
Nhap phan tu a[4] : 4
Nhap phan tu a[5] : 28
Noi dung cua mang la:
1 6 469 3 4 28
Cac so hoan hao co trong mang la:
6 28
Ví dụ 4: Tìm và xuất ra màn hình các số chính phương của 1 ma trận.
Thuật toán: Tương tự với mảng 1 chiều, chúng ta vẫn sẽ phải dùng hàm kiểm tra số hoàn hảo để kiểm tra tất cả các phần tử của ma trận, nếu phần tử nào thỏa chúng ta sẽ xuất ra màn hình.
Để làm việc trên ma trận chúng ta cần phải tạo ra một mảng 2 chiều. Nếu bạn nào chưa tìm hiểu về mảng 2 chiều các bạn có thể xem thêm tại đây.
Tạo và xuất ma trận:
//Ma trận //Tạo ma trận: #define MAXD 100 #define MAXC 100 void NhapMaTran(int a[][MAXC], int &m, int &n) { do { printf("Nhap so dong: "); scanf("%d", &m); } while (m <= 0); do { printf("Nhap so cot: "); scanf("%d", &n); } while (n <= 0); for (int i = 0; i < m; i++) for (int j = 0; j < n; j++) { printf("Phan tu a[%d][%d]", i, j); scanf("%d", &a[i][j]); } } //Xuất ma trận: void XuatMaTran(int a[][MAXC], int m, int n) { for (int i = 0; i < m; i++) for (int j = 0; j < n; j++) { printf("%5d \n", a[i][j]); } }
Tìm và xuất các số hoàn hảo của ma trận:
//Tìm các số hoàn hảo của ma trận: void LietKeMaTran(int a[][MAXC], int m, int n) { for (int i = 0; i < m; i++) for (int j = 0; j < n; j++) { if (KTSHH(a[i][j]) == 1) printf("%5d", a[i][j]); } }
Hàm main
#include<stdio.h> #include<conio.h> #include<math.h> #define MAXD 100 #define MAXC 100 void LietKeMaTran(int a[][MAXC],int m, int n); void NhapMaTran(int a[][MAXC],int &m, int &n); void XuatMaTran(int a[][MAXC],int m, int n); void main() { int A[MAXD][MAXC]; int M,N ; NhapMaTran(A, M, N); XuatMaTran(A, M, N); printf("Cac so hoan hao cua ma tran la: \n"); LietKeMaTran(A, M, N); getch(); }
Kết quả:
Nhap so dong: 2
Nhap so cot: 2
Phan tu a[0][0]4
Phan tu a[0][1]5
Phan tu a[1][0]6
Phan tu a[1][1]7
4
5
6
7
Cac so hoan hao cua ma tran la:
6
Trên đây là một số vi dụ liên quan đến các bài toán lập trình cơ bản C/C++ của số hoàn hảo. Chúc các bạn thành công. Các bạn có thể xem thêm về Số Chính Phương và Số nguyên tố. Cảm ơn các bạn đã theo dõi.
cho mình cách tìm số hoàn hảo của dãy số (1+2+…+20=210) khi mình biết số tổng là 210 thì mình muốn biết các số được cộng lại có phải từ 1 đến 20 không?
6 cũng là ước của 6