Numbers whose count of divisors is prime: Difference between revisions
Content added Content deleted
(→{{header|Ruby}}: Add Ruby) |
No edit summary |
||
Line 598: | Line 598: | ||
73441 76729 78961 80089 83521 85849 94249 96721 97969 |
73441 76729 78961 80089 83521 85849 94249 96721 97969 |
||
Found 79 numbers.</pre> |
Found 79 numbers.</pre> |
||
=={{header|Delphi}}== |
|||
{{works with|Delphi|6.0}} |
|||
{{libheader|SysUtils,StdCtrls}} |
|||
<syntaxhighlight lang="Delphi"> |
|||
procedure GetUniqueFactors(N: integer; var IA: TIntegerDynArray); |
|||
{Get unique factors of a number} |
|||
var I: integer; |
|||
begin |
|||
SetLength(IA,1); |
|||
for I:=2 to N do |
|||
if (N mod I)=0 then |
|||
begin |
|||
SetLength(IA,Length(IA)+1); |
|||
IA[High(IA)]:=I; |
|||
end; |
|||
end; |
|||
procedure ShowCountPrimes(Memo: TMemo); |
|||
{Count the number of Unique factors that are prime} |
|||
var I,C,Cnt: integer; |
|||
var IA: TIntegerDynArray; |
|||
var S: string; |
|||
begin |
|||
Cnt:=0; S:=''; |
|||
for I:=1 to 100000-1 do |
|||
begin |
|||
GetUniqueFactors(I,IA); |
|||
C:=Length(IA); |
|||
if (C=2) or (not IsPrime(C)) then continue; |
|||
Inc(Cnt); |
|||
S:=S+Format('%8D',[I]); |
|||
If (Cnt mod 5)=0 then S:=S+CRLF; |
|||
end; |
|||
Memo.Lines.Add('Count='+IntToStr(Cnt)); |
|||
Memo.Lines.Add(S); |
|||
end; |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
Count=79 |
|||
4 9 16 25 49 |
|||
64 81 121 169 289 |
|||
361 529 625 729 841 |
|||
961 1024 1369 1681 1849 |
|||
2209 2401 2809 3481 3721 |
|||
4096 4489 5041 5329 6241 |
|||
6889 7921 9409 10201 10609 |
|||
11449 11881 12769 14641 15625 |
|||
16129 17161 18769 19321 22201 |
|||
22801 24649 26569 27889 28561 |
|||
29929 32041 32761 36481 37249 |
|||
38809 39601 44521 49729 51529 |
|||
52441 54289 57121 58081 59049 |
|||
63001 65536 66049 69169 72361 |
|||
73441 76729 78961 80089 83521 |
|||
85849 94249 96721 97969 |
|||
Elapsed Time: 17.921 Sec. |
|||
</pre> |
|||
=={{header|F_Sharp|F#}}== |
=={{header|F_Sharp|F#}}== |