Strange numbers: Difference between revisions
Content added Content deleted
Drkameleon (talk | contribs) (added Arturo) |
No edit summary |
||
Line 1,053: | Line 1,053: | ||
425 427 429 461 463 464 468 469 470 472 |
425 427 429 461 463 464 468 469 470 472 |
||
474 475 479 492 494 496 497</pre> |
474 475 479 492 494 496 497</pre> |
||
=={{header|Delphi}}== |
|||
{{works with|Delphi|6.0}} |
|||
{{libheader|SysUtils,StdCtrls}} |
|||
<syntaxhighlight lang="Delphi"> |
|||
{This code is normally in a separate library, but it is included here for clarity} |
|||
procedure GetDigits(N: integer; var IA: TIntegerDynArray); |
|||
{Get an array of the integers in a number} |
|||
{Numbers returned from least to most significant} |
|||
var T,I,DC: integer; |
|||
begin |
|||
DC:=Trunc(Log10(N))+1; |
|||
SetLength(IA,DC); |
|||
for I:=0 to DC-1 do |
|||
begin |
|||
T:=N mod 10; |
|||
N:=N div 10; |
|||
IA[I]:=T; |
|||
end; |
|||
end; |
|||
function IsStrangeNumber(N: integer): boolean; |
|||
{Test if the difference between digits is prime} |
|||
var Digits: TIntegerDynArray; |
|||
var I: integer; |
|||
begin |
|||
Result:=False; |
|||
{Get digits} |
|||
GetDigits(N,Digits); |
|||
{test if the difference between digits is prime} |
|||
for I:=0 to High(Digits)-1 do |
|||
if not IsPrime(abs(Digits[I+1]-Digits[I])) then exit; |
|||
Result:=True |
|||
end; |
|||
procedure ShowStrangeNumbers(Memo: TMemo); |
|||
var I,Cnt: integer; |
|||
var S: string; |
|||
begin |
|||
S:=''; |
|||
Cnt:=0; |
|||
for I:=100 to 500-1 do |
|||
if IsStrangeNumber(I) then |
|||
begin |
|||
Inc(Cnt); |
|||
S:=S+Format('%5d',[I]); |
|||
if (Cnt mod 10)=0 then S:=S+CRLF; |
|||
end; |
|||
Memo.Lines.Add('Count = '+IntToStr(Cnt)); |
|||
Memo.Lines.Add(S); |
|||
end; |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
Count = 87 |
|||
130 131 135 136 138 141 142 146 147 149 |
|||
161 163 164 168 169 181 183 185 186 202 |
|||
203 205 207 241 242 246 247 249 250 252 |
|||
253 257 258 270 272 274 275 279 292 294 |
|||
296 297 302 303 305 307 313 314 316 318 |
|||
350 352 353 357 358 361 363 364 368 369 |
|||
381 383 385 386 413 414 416 418 420 424 |
|||
425 427 429 461 463 464 468 469 470 472 |
|||
474 475 479 492 494 496 497 |
|||
Elapsed Time: 2.428 ms. |
|||
</pre> |
|||
=={{header|Draco}}== |
=={{header|Draco}}== |