Giúp mình câu này với mọi người
`*` `Pascal:`
`" "`
program le_plus_grand_nombre_premier;
uses crt;
var S, temp: string;
per: array [1..255] of byte;
nom: array [1..255] of integer;
en, sor: text;
i, j, max, quan, drap: byte;
k: integer;
begin
clrscr;
assign(en, 'CAU4.INP');
reset(en);
assign(sor, 'CAU4.OUT');
rewrite(sor);
readln(en, S);
j := 1;
temp := '';
for i := 1 to length(S) do
per[i] := 0;
for i := 1 to length(S) do
begin
per[ord(S[i])] := per[ord(S[i])] + 1;
if S[i] in ['0' .. '9'] then
temp := temp + S[i]
else
begin
val(temp, nom[j]);
j := j + 1;
temp := '';
end;
end;
if S[length(S)] in ['0' .. '9'] then
begin
val(temp, nom[j]);
j := j + 1;
end;
max := 0;
quan := 0;
for i := 1 to 255 do
if per[i] <> 0 then
begin
quan := quan + 1;
if per[i] > max then
max := per[i];
end;
writeln(sor, quan);
writeln(sor, max);
quan := 0;
for i := 1 to j - 1 do
begin
drap := 1;
k := 2;
while (drap = 1) and (k <= sqrt(nom[i])) do
begin
if nom[i] mod k = 0 then
drap := 0;
k := k + 1;
end;
if (drap = 1) and (nom[i] > quan) then
quan := nom[i];
end;
if quan <> 0 then
writeln(sor, quan)
else
writeln(sor, -1);
close(en);
close(sor);
end.
$\color{#00FFFF}{\text{_________}}$ $\color{#33FFFF}{\text{_________}}$ $\color{#66FFFF}{\text{_________}}$ $\color{#99FFFF}{\text{_________}}$ $\color{#CCFFFF}{\text{_________}}$
var S, temp: string;
per: array [1..255] of byte;
nom: array [1..255] of integer;
en, sor: text;
i, j, max, quan, drap: byte;
k: integer;
`" "`
+ temp: Chuỗi để lưu tạm các cụm gồm các chữ số liền kề nhau
+ per[i]: Số lần xuất hiện của kí tự có mã ASCII là i
+ nom[i]: Cụm số thứ i xuất hiện trong xâu S
$\color{#00FFFF}{\text{_________}}$ $\color{#33FFFF}{\text{_________}}$ $\color{#66FFFF}{\text{_________}}$ $\color{#99FFFF}{\text{_________}}$ $\color{#CCFFFF}{\text{_________}}$
j := 1;
temp := '';
for i := 1 to length(S) do
per[i] := 0;
for i := 1 to length(S) do
begin
per[ord(S[i])] := per[ord(S[i])] + 1;
if S[i] in ['0' .. '9'] then
temp := temp + S[i]
else
begin
val(temp, nom[j]);
j := j + 1;
temp := '';
end;
end;
if S[length(S)] in ['0' .. '9'] then
begin
val(temp, nom[j]);
j := j + 1;
end;
`" "`
+ Khi duyệt qua mỗi kí tự:
+ per[ord(S[i])] := per[ord(S[i])] + 1: tăng số lần xuất hiện của kí tự S[i], ord(S[i]) trả về giá trị của mã ASCII của kí tự S[i]
+ temp: Lưu các ký tự số liên tiếp, khởi tạo lại rỗng khi duyệt phải kí tự không phải số, và khi gặp kí tự không phải số biến j sẽ tăng lên 1 (Kết thúc cụm số trước đó)
+ val(temp, nom[j]): Chuyển chuỗi số temp thành kiểu nguyên và lưu vào nom[j]
`" "`
+ Một chuỗi số được chuyển sang kiểu nguyên khi gặp kí tự kề kí tự cuối của chuỗi số không phải kí tự số, nếu kí tự cuối cùng của S là số thì cần thêm đoạn code sau để có thể chuyển cụm số cuối cùng của S vào nom: if S[length(S)] in ['0' .. '9'] then begin val(temp, nom[j]); j := j + 1; end;
$\color{#00FFFF}{\text{_________}}$ $\color{#33FFFF}{\text{_________}}$ $\color{#66FFFF}{\text{_________}}$ $\color{#99FFFF}{\text{_________}}$ $\color{#CCFFFF}{\text{_________}}$
max := 0;
quan := 0;
for i := 1 to 255 do
if per[i] <> 0 then
begin
quan := quan + 1;
if per[i] > max then
max := per[i];
end;
`" "`
+ max: Số lần xuất hiện nhiều nhất của 1 kí tự trong S
+ quan: Số lượng kí tự khác nhau trong S
$\color{#00FFFF}{\text{_________}}$ $\color{#33FFFF}{\text{_________}}$ $\color{#66FFFF}{\text{_________}}$ $\color{#99FFFF}{\text{_________}}$ $\color{#CCFFFF}{\text{_________}}$
quan := 0;
for i := 1 to j - 1 do
begin
drap := 1;
k := 2;
while (drap = 1) and (k <= sqrt(nom[i])) do
begin
if nom[i] mod k = 0 then
drap := 0;
k := k + 1;
end;
if (drap = 1) and (nom[i] > quan) then
quan := nom[i];
end;
if quan <> 0 then
writeln(sor, quan)
else
writeln(sor, -1);
`" "`
+ Đặt cờ ban đầu drap = 1, nếu từ 2 đến $\sqrt[]{nom[i]}$ có số mà nom[i] chia hết thì drap = 0 (nom[i] không phải nguyên tố)
+ Ban đầu quan = 0, nếu có số nguyên tố > quan thì giá trị quan sẽ thay đổi, nếu không đổi thì in -1
Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!
Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần và sang năm lại là năm cuối cấp, áp lực lớn dần. Hãy chú ý đến sức khỏe, cân bằng giữa học và nghỉ ngơi để đạt hiệu quả tốt nhất!
Copyright © 2024 Giai BT SGK