Greatest prime dividing the n-th cubefree number: Difference between revisions
Content deleted Content added
added RPL |
Added FreeBASIC |
||
Line 24: | Line 24: | ||
;Reference |
;Reference |
||
* [https://oeis.org/A370833 OEIS sequence: A370833: a(n) is the greatest prime dividing the n-th cubefree number, for n >= 2; a(1)=1.] |
* [https://oeis.org/A370833 OEIS sequence: A370833: a(n) is the greatest prime dividing the n-th cubefree number, for n >= 2; a(1)=1.] |
||
=={{header|FreeBASIC}}== |
|||
{{trans|Wren}} |
|||
Without using external libraries, it takes about 68 seconds to run on my system (Core i5). |
|||
<syntaxhighlight lang="vbnet">Dim Shared As Integer factors() |
|||
Dim As Integer res(101) |
|||
res(0) = 1 |
|||
Dim As Integer count = 1 |
|||
Dim As Integer j, i = 2 |
|||
Dim As Integer lim1 = 100 |
|||
Dim As Integer lim2 = 1000 |
|||
Dim As Integer max = 1e7 |
|||
Dim As Integer cubeFree = 0 |
|||
Sub primeFactors(n As Integer, factors() As Integer) |
|||
Dim As Integer i = 2, cont = 2 |
|||
While (i * i <= n) |
|||
While (n Mod i = 0) |
|||
n /= i |
|||
cont += 1 |
|||
Redim Preserve factors(1 To cont) |
|||
factors(cont) = i |
|||
Wend |
|||
i += 1 |
|||
Wend |
|||
If (n > 1) Then |
|||
cont += 1 |
|||
Redim Preserve factors(1 To cont) |
|||
factors(cont) = n |
|||
End If |
|||
End Sub |
|||
While (count < max) |
|||
primeFactors(i, factors()) |
|||
If (Ubound(factors) < 3) Then |
|||
cubeFree = 1 |
|||
Else |
|||
cubeFree = 1 |
|||
For j = 2 To Ubound(factors) |
|||
If (factors(j-2) = factors(j-1) And factors(j-1) = factors(j)) Then |
|||
cubeFree = 0 |
|||
Exit For |
|||
End If |
|||
Next j |
|||
End If |
|||
If (cubeFree = 1) Then |
|||
If (count < lim1) Then |
|||
res(count) = factors(Ubound(factors)) |
|||
End If |
|||
count += 1 |
|||
If (count = lim1) Then |
|||
Print "First "; lim1; " terms of a[n]:" |
|||
For j = 1 To lim1 |
|||
Print Using "####"; res(j-1); |
|||
If (j Mod 10 = 0) Then Print |
|||
Next j |
|||
Print |
|||
Elseif (count = lim2) Then |
|||
Print "The"; count; " term of a[n] is"; factors(Ubound(factors)) |
|||
lim2 *= 10 |
|||
End If |
|||
End If |
|||
i += 1 |
|||
Wend |
|||
Sleep</syntaxhighlight> |
|||
{{out}} |
|||
<pre>First 100 terms of a[n]: |
|||
1 2 3 2 5 3 7 3 5 11 |
|||
3 13 7 5 17 3 19 5 7 11 |
|||
23 5 13 7 29 5 31 11 17 7 |
|||
3 37 19 13 41 7 43 11 5 23 |
|||
47 7 5 17 13 53 11 19 29 59 |
|||
5 61 31 7 13 11 67 17 23 7 |
|||
71 73 37 5 19 11 13 79 41 83 |
|||
7 17 43 29 89 5 13 23 31 47 |
|||
19 97 7 11 5 101 17 103 7 53 |
|||
107 109 11 37 113 19 23 29 13 59 |
|||
The 1000th term of a[n] is 109 |
|||
The 10000th term of a[n] is 101 |
|||
The 100000th term of a[n] is 1693 |
|||
The 1000000th term of a[n] is 1202057 |
|||
The 10000000th term of a[n] is 1202057</pre> |
|||
=={{header|RPL}}== |
=={{header|RPL}}== |