Trang chủ Tin Học Lớp 7 Bài 4: Trò chơi tìm số (5.0 điểm) An chọn...

Bài 4: Trò chơi tìm số (5.0 điểm) An chọn ra một số nguyên tố p (p < 100) và đem dấu vào một xâu kí tự St sao cho p là số nguyên tố lớn nhất trong dãy các s

Câu hỏi :

Bài 4: Trò chơi tìm số (5.0 điểm)

An chọn ra một số nguyên tố p (p < 100) và đem dấu vào một xâu kí tự St sao cho p là số nguyên tố lớn nhất trong dãy các số nguyên tố được tạo từ các xâu con của St (xâu con của một xâu kí tự St là một dãy liên tiếp các kí tự trong St). An cho Nam biết xâu St và đố Nam tìm được số nguyên tố p mà An đã chọn.

Chẳng hạn, An chọn số p = 23 và dấu vào xâu St = ‘tesst1234#password5426’

Yêu cầu: Hãy giúp Nam tìm số nguyên tố p

Tệp tin bài làm: BAI4.PAS

Dữ liệu vào: Vào từ file văn bản TIMSO.INP gồm một dòng chứa xâu St có độ dài không quá 200 kí tự.

Dữ liệu ra: Ghi ra file văn bản TIMSO.OUT số nguyên tố p tìm được. Nếu nhập xâu St sai so với điều kiện thì thông báo ra tệp TIMSO.OUT số -1.

Ví dụ:

TIMSO.INP                                         TIMSO.OUT

tesst1234#password5426                              23

---------------------------------------------------------------------------------------------

pascal (ko dùng hàm và thủ tục,ko cần ghi ra file đâu)

ai làm nhanh đúng cho cthn

image

Bài 4: Trò chơi tìm số (5.0 điểm) An chọn ra một số nguyên tố p (p &lt; 100) và đem dấu vào một xâu kí tự St sao cho p là số nguyên tố lớn nhất trong dãy các s

Lời giải 1 :

uses crt;
var isPrime: array[1..100] of boolean;
    i,j,res,toInt: integer;
    s,t: ansistring;
begin
    for i := 1 to 100 do isPrime[i] := true;
    isPrime[1] := false;
    isPrime[2] := true;
    for i := 3 to 100 do
        for j := 2 to i - 1 do
            if (i mod j) = 0 then begin
                isPrime[i] := false;
                break;
            end;
    readln(s);
    if length(s) > 200 then
    begin
        write(-1);
        halt;
    end;
    res := -1;
    t := '';
    for i := 1 to length(s) do
        if (ord(s[i]) - 48 >= 0) and (ord(s[i]) - 48 <= 9) then
            for j := i to length(s) do
                if (ord(s[j]) - 48 >= 0) and (ord(s[j]) - 48 <= 9) and (length(t) <= 1) then begin
                    t := t + s[j];
                    if length(t) = 1 then toInt := ord(t[1]) - 48
                    else toInt := (ord(t[1]) - 48)*10 + (ord(t[2]) - 48);
                    if (isPrime[toInt]) and (toInt > res) then res := toInt;
                end else begin
                    t := '';
                    break;
                end;
    write(res);
end.

Bạn có biết?

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!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 7

Lớp 7 - Năm thứ hai ở cấp trung học cơ sở, một chuỗi quay mới lại đến và chúng ta vẫn bước tiếp trên con đường học sinh. Học tập vẫn là nhiệm vụ chính, hãy luôn kiên trì và không ngừng cố gắng!

Nguồn :

sưu tập

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK