Product of min and max prime factors: Difference between revisions
Content added Content deleted
(Product of min and max prime factors in FreeBASIC) |
|||
Line 66: | Line 66: | ||
91 46 93 94 95 6 9409 14 33 10 |
91 46 93 94 95 6 9409 14 33 10 |
||
</pre> |
</pre> |
||
=={{header|FreeBASIC}}== |
|||
{{trans|ALGOL 68}} |
|||
<syntaxhighlight lang="freebasic">Const maxNumber = 100 ' maximum number we will consider |
|||
' sieve the primes to maxNumber |
|||
Dim As Boolean prime(0 To maxNumber) |
|||
prime(0) = False |
|||
prime(1) = False |
|||
prime(2) = True |
|||
Dim As Integer i, j, s, ub = Ubound(prime) |
|||
For i = 3 To ub Step 2 |
|||
prime(i) = True |
|||
Next i |
|||
For i = 4 To ub Step 2 |
|||
prime(i) = False |
|||
Next |
|||
For i = 3 To Abs(Sqr(ub)) Step 2 |
|||
If prime(i) Then |
|||
For s = i * i To ub Step i + i |
|||
prime(s) = False |
|||
Next s |
|||
End If |
|||
Next i |
|||
' construct tables of the minimum and maximum prime factors |
|||
' of numbers up to max number |
|||
Dim As Integer minPF(1 To maxNumber) |
|||
For i = 1 To Ubound(minPF) |
|||
minPF(i) = 0 |
|||
Next i |
|||
Dim As Integer maxPF(1 To maxNumber) |
|||
For i = 1 To Ubound(minPF) |
|||
maxPF(i) = 0 |
|||
Next i |
|||
minPF(1) = 1 |
|||
maxPF(1) = 1 |
|||
For i = 1 To maxNumber |
|||
If prime(i) Then |
|||
For j = i To Ubound(minPF) Step i |
|||
If minPF(j) = 0 Then minPF(j) = i |
|||
maxPF(j) = i |
|||
Next j |
|||
End If |
|||
Next i |
|||
' print the products of the min and max prime factors |
|||
For i = 1 To maxNumber |
|||
Print Using "#####"; minPF(i) * maxPF(i); |
|||
If i Mod 10 = 0 Then Print |
|||
Next i</syntaxhighlight> |
|||
{{out}} |
|||
<pre>Same as ALGOL 68 entry.</pre> |
|||
=={{header|Phix}}== |
=={{header|Phix}}== |