Chỉ cần viết hàm kiểm tra số siêu nguyên tố Viết chương trình càng tốt

2 câu trả lời

program sieu_nguyen_to;

var n:integer;

{---Ham-nguyen-to---}

function ktnt(k:integer):boolean;

var e:integer;

begin

       ktnt:=false;

       if k<2 then exit;

       for e:=2 to trunc(sqrt(k)) do

              if k mod e=0 then exit;

       ktnt:=true;

end;

{---Ham-sieu-nguyen-to---}

function ktsnt(x:integer):boolean;

begin

       ktsnt:=false;

       while x>0 do

              begin

                     if ktnt(x)=false then exit;

                     x:=x div 10;

              end;

       ktsnt:=true;

end;

{---Chuong-trinh-chinh---}

BEGIN

       clrscr;

       write('Nhap so can kiem tra: '); readln(n);

       if ktsnt(n) then write('Yes') else write('No');

       readln;

end.

Pascal:

uses crt;
var n:longint;
function isPrimeNumber(a:longint):boolean;
var i:longint;
begin
   if a<2 then exit(false);
   for i:=2 to trunc(sqrt(a)) do
      if a mod i=0 then exit(false);
   exit(true);
end;
function isSpecialPrime(n:longint):boolean;
begin
   while n<>0 do
      begin
         if isPrimeNumber(n)=false then exit(false);
         n:=n div 10;
      end;
   exit(true);
end;
begin
clrscr;
   readln(n);
   if isSpecialPrime(n) then write('true') else write('false');
readln
end.

C++:

#include<bits/stdc++.h>
using namespace std;
bool isPrimeNumber(int a) {
   if (a<2)
      return false;
   for (int i=2;i<=sqrt(a);i++) {
      if (a%i==0)
         return false;
   }
   return true;
}
bool isSpecialPrime(int n) {
   while (n!=0) {
      if (isPrimeNumber(n)==false) {
         return false;
      }
      n/=10;
   }
   return true;
}
int main() {
   int n;
   cin>>n;
   if (isSpecialPrime(n)) {
      cout<<"true";
   } else {
      cout<<"false";
   }
}

Câu hỏi trong lớp Xem thêm