pastebin

Paste Search Dynamic
Recent pastes
isPrime
  1. uses math;
  2. const
  3.         fi = 'primestring.inp';
  4.         fo = 'primestring.out';
  5. var
  6.         q: byte;
  7.         s: string;
  8.         d: array['a'..'z'] of longint;
  9. function isPrime(n: longint):boolean;
  10. var     i: longint;
  11. begin
  12.         if n < 2 then exit(false);
  13.         if n <= 3 then exit(true);
  14.         if (n mod 2 = 0) or (n mod 3 = 0) then exit(false);
  15.         i:=5;
  16.         while i <= trunc(sqrt(n)) do
  17.         begin
  18.                 if (n mod i = 0) or (n mod (i + 2) = 0) then exit(false);
  19.                 i:=i + 6;
  20.         end;
  21.         exit(true);
  22. end;
  23. procedure solve;
  24. var
  25.         c: char;
  26.         cnt: longint;
  27. begin
  28.         for c in s do inc(d[c]);
  29.         cnt:=0;
  30.         for c:='a' to 'z' do
  31.                 if d[c] = 1 then inc(cnt);
  32.         if isPrime(cnt) then writeln('YES')
  33.         else writeln('NO');
  34. end;
  35. begin
  36.         //assign(input, fi); reset(input);
  37.         //assign(output, fo); rewrite(output);
  38.         readln(q);
  39.         while q <> 0 do
  40.         begin
  41.                 fillchar(d, sizeof(d), 0);
  42.                 readln(s);
  43.                 solve;
  44.                 dec(q);
  45.         end;
  46. end.
  47.  
Parsed in 0.015 seconds