Kiểm tra số hoàn thiện trong c?

bool soHT(int n)
{
	int i;
	int sum = 0;
	for (i = 0; i < n; i++)
	{
		if (n % i == 0)
		{
			sum+=i;
		}
	}
	if (sum == n)
	{
		return true;
	}
	return false;
}
void soHThien (int arr[], int size)
{
	int i;
	for (i = 0; i < size; i++)
	{
		if(soHT(arr[i]))
		{
			printf("%d la so hoan thien\n", arr[i]);		
		}
	}
	printf(" khong ton tai hoan thien\n");
}

hàm main

#include <stdlib.h>
#include "khaibao.h"
#include "dinhnghia.h"
#define MAX_SIZE 1000
int main(int argc, char *argv[]) {
	int size = 0;
	int i;
	int arrKT[MAX_SIZE];
	int arr[MAX_SIZE];
	nhapMang(arr, arrKT, size);
soHThien (arr,size);
}

nhập vào 1 mảng xuất ra giá trị tại đó có phải là số hoàn thiện hay không? cho em hỏi là khi em nhập các giá trị vào thì nó không hoạt động. em mới học nên mong anh giúp đỡ với ạ.

anh chị ad nào thấy bài em xóa giùm với em ấn nhầm nút khi chưa soạn xong.

Bạn cứ sửa bài đi, bao giờ sửa xong thì comment kèm tag mình nhé.

2 Likes

em sửa rồi anh ơi. tại em tưởng sẽ bị xóa nên không kiểm tra lại.

size vẫn bằng 0.

4 Likes

em cảm ơn nhiều nha

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?