Làm sao để có câu trả lời hay nhất?
13/01/2025
13/01/2025
Giải bài toán tìm phần tử có nhiều ước số nhất bằng Pascal
Hiểu bài toán
Input: Một dãy số nguyên dương.
Output: Các phần tử trong dãy có số lượng ước số lớn nhất.
Giải thuật
Đọc dữ liệu: Đọc số lượng phần tử N và các phần tử của dãy A từ file BAI2.INP.
Tìm số lượng ước của mỗi phần tử:
Hàm đếm ước: Viết một hàm để đếm số lượng ước của một số nguyên dương bất kỳ.
Duyệt qua mảng: Áp dụng hàm đếm ước cho từng phần tử trong dãy A.
Tìm giá trị lớn nhất của số lượng ước:
Khởi tạo một biến maxCount để lưu giá trị lớn nhất của số lượng ước tìm được.
Duyệt qua mảng các số lượng ước, cập nhật maxCount nếu tìm thấy giá trị lớn hơn.
In kết quả:
Duyệt lại mảng A, nếu số lượng ước của một phần tử bằng maxCount thì in phần tử đó ra file BAI2.OUT.
Code Pascal
Delphi
program Bai2;
var
N, i, maxCount, count: integer;
a: array[1..500] of integer;
f1, f2: text;
function demUoc(n: integer): integer;
var
i, count: integer;
begin
count := 0;
for i := 1 to trunc(sqrt(n)) do
if n mod i = 0 then
count := count + 2;
// Trừ đi 1 nếu căn bậc hai của n là số nguyên
if sqr(trunc(sqrt(n))) = n then
dec(count);
demUoc := count;
end;
begin
assign(f1, 'BAI2.INP'); reset(f1);
assign(f2, 'BAI2.OUT'); rewrite(f2);
readln(f1, N);
for i := 1 to N do
read(f1, a[i]);
close(f1);
maxCount := 0;
for i := 1 to N do
begin
count := demUoc(a[i]);
if count > maxCount then
maxCount := count;
end;
write(f2, 'Cac phan tu co so luong uoc lon nhat: ');
for i := 1 to N do
if demUoc(a[i]) = maxCount then
write(f2, a[i], ' ');
close(f2);
end.
13/01/2025
đây nha bạn
13/01/2025
dưới ảnh
Nếu bạn muốn hỏi bài tập
Các câu hỏi của bạn luôn được giải đáp dưới 10 phút
CÂU HỎI LIÊN QUAN
Top thành viên trả lời