Trong lý thuyết số, “số giả nguyên tố” là một số (có thể là hợp số) thoả mãn một tính chất nào đó của số nguyên tố. Tuỳ theo tính chất mà ta sẽ có các loại số giả nguyên tố khác nhau. Ta quy ước tính chất một số giả nguyên tố như sau: “Là một số thập phân hữu hạn dương mà từng chữ số của nó là số nguyên tố và tổng các chữ số của nó cũng là số nguyên tố (với phần nguyên và phần thập phân cách nhau bởi dấu phẩy)”. Hãy viết chương trình kiểm tra xem một số có phải là “số giả nguyên tố” hay không. Dữ liệu vào từ file: GIANT.INP - Dòng đầu tiên ghi số thập phân hữu hạn dương (không quá 300 chữ số). Kết quả ra file: GIANT.OUT - Dòng đầu tiên ghi kết quả “CO” hoặc “KHONG”. Ví dụ: GIANT.INP GIANT.OUT 73,232 CO 73,23212 KHONG

1 câu trả lời

uses crt;
var ss: ansistring;
    res: boolean;
    t, i: longint;
    
function prime(x: longint): boolean;
var i: longint;
begin
    for i:=2 to trunc(sqrt(x)) do 
        if x mod i = 0 then exit(false);
    exit(true);
end;
    
begin
    res:=true;
    readln(ss);
    
    for i:=1 to length(ss) do 
        if ss[i] in ['0'..'9'] then begin
            inc(t, ord(ss[i]) - 48);
            res:=res and (ss[i] in ['2', '3', '5', '7']);
        end;
    
    res:=res and prime(t);
    if res then write('CO') else write('KHONG');
readln;
end.