Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,845 questions

51,766 answers

573 users

How to check if a number is circular prime (cyclically rotate left will also be prime) in Pascal

1 Answer

0 votes
program CircularPrimes;

function IsPrime(n: Integer): Boolean;
var
  i, limit: Integer;
begin
  if n = 2 then
    Exit(True);
  if (n < 2) or (n mod 2 = 0) then
    Exit(False);

  limit := Trunc(Sqrt(n));
  i := 3;
  while i <= limit do
  begin
    if n mod i = 0 then
      Exit(False);
    Inc(i, 2);
  end;
  
  IsPrime := True;
end;

function CyclicallyRotateLeft(n: Integer): Integer;
var
  m, p: Integer;
begin
  m := n;
  p := 1;
  while m >= 10 do
  begin
    p := p * 10;
    m := m div 10;
  end;
  
  CyclicallyRotateLeft := (n mod p) * 10 + m;
end;

function IsCircularPrime(n: Integer): Boolean;
var
  rotated_n: Integer;
begin
  if (n < 2) then
    Exit(False);

  rotated_n := CyclicallyRotateLeft(n);
  while rotated_n <> n do
  begin
    if (rotated_n < n) or (not IsPrime(rotated_n)) then
      Exit(False);
    rotated_n := CyclicallyRotateLeft(rotated_n);
  end;
  
  IsCircularPrime := True;
end;

var
  testNumbers: array[1..5] of Integer = (197, 1193, 23, 101, 119);
  i: Integer;
begin
  for i := 1 to Length(testNumbers) do
  begin
    if IsCircularPrime(testNumbers[i]) then
      WriteLn(testNumbers[i], ': Circular Prime')
    else
      WriteLn(testNumbers[i], ': Not Circular Prime');
  end;
end.


// 1193
// 1193 = prime
// 3119 = prime
// 9311 = prime
// 1931 = prime


(*
run:

197: Circular Prime
1193: Circular Prime
23: Not Circular Prime
101: Not Circular Prime
119: Circular Prime

*)



 



answered Nov 10, 2025 by avibootz
edited Nov 10, 2025 by avibootz
...