Code liệt kê các ước của n chạy được nhưng không ra kết quả

Em mới tự học lập trình, sai mà không biết lỗi ở đâu ai chỉ em với.
Đề bài:

Liệt kê các ước số của n, có bao số nguyên tố (nt) và liệt kê các ước số là nguyên tố của n.

Phần sai là uocnt(n) kết quả không có, chỉ có dòng cac uoc nguyen to cua n la hiện ra thôi:

#include<iostream>
#include<stdio.h>

void uoc(int n) {
	int count = 0;
	printf("cac uong so cua %d la:",n);
	for (int i = 1; i <= n; i++) {
		if (n%i == 0) {
			printf("%4d", i);
			count++;
		}
	}
	printf("\nco tat ca %d uoc so cua %d", count, n);
}

int nt(int n) {
	if (n < 2)return 0;
	for (int i = 2; i <= sqrt(n); i++)
		if (n%i == 0)return 0;
	return 1;

}

void uocnt(int n) {
	printf("\ncac uoc nguyen to cua %d la ", n);
	for (int j = 2; j <= sqrt(n); j++) {
		if ( n%j == 0 && nt(j)) printf("%d ", j);
	}
}

int main() {
	int n;
	scanf_s("%d", &n);
	uoc(n);
	uocnt(n);
	system("pause");
	return 0;
}

Có gì sai đâu nhỉ.
Bạn có nhập số đúng chưa? Số nào phải có ước là số nguyên tố ấy. Vd: 6, 15, 30,....

4 Likes

Nếu n là số nguyên tố thì ko có gì cả là phải :smiley:

Hàm đó như bài phân tích thừa số ấy.

4 Likes

cảm ơn a. e thông não r

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