Số hoàn hảo là gì? một số bài toán tìm số hoàn hảo

2

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ươngSố nguyên tố. Cảm ơn các bạn đã theo dõi.

2 COMMENTS