Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,100 +0,0 @@
|
|||
with Ada.Text_IO;
|
||||
with Ada.Containers.Vectors;
|
||||
|
||||
procedure Ludic_Numbers is
|
||||
|
||||
package Lucid_Lists is
|
||||
new Ada.Containers.Vectors (Positive, Natural);
|
||||
use Lucid_Lists;
|
||||
|
||||
List : Vector;
|
||||
|
||||
procedure Fill is
|
||||
use type Ada.Containers.Count_Type;
|
||||
Vec : Vector;
|
||||
Lucid : Natural;
|
||||
Index : Positive;
|
||||
begin
|
||||
Append (List, 1);
|
||||
|
||||
for I in 2 .. 22_000 loop
|
||||
Append (Vec, I);
|
||||
end loop;
|
||||
|
||||
loop
|
||||
Lucid := First_Element (Vec);
|
||||
Append (List, Lucid);
|
||||
|
||||
Index := First_Index (Vec);
|
||||
loop
|
||||
Delete (Vec, Index);
|
||||
Index := Index + Lucid - 1;
|
||||
exit when Index > Last_Index (Vec);
|
||||
end loop;
|
||||
|
||||
exit when Length (Vec) <= 1;
|
||||
end loop;
|
||||
|
||||
end Fill;
|
||||
|
||||
procedure Put_Lucid (First, Last : in Natural) is
|
||||
use Ada.Text_IO;
|
||||
begin
|
||||
Put_Line ("Lucid numbers " & First'Image & " to " & Last'Image & ":");
|
||||
for I in First .. Last loop
|
||||
Put (Natural'(List (I))'Image);
|
||||
end loop;
|
||||
New_Line;
|
||||
end Put_Lucid;
|
||||
|
||||
procedure Count_Lucid (Below : in Natural) is
|
||||
Count : Natural := 0;
|
||||
begin
|
||||
for Lucid of List loop
|
||||
if Lucid <= Below then
|
||||
Count := Count + 1;
|
||||
end if;
|
||||
end loop;
|
||||
Ada.Text_IO.Put_Line ("There are " & Count'Image & " lucid numbers <=" & Below'Image);
|
||||
end Count_Lucid;
|
||||
|
||||
procedure Find_Triplets (Limit : in Natural) is
|
||||
|
||||
function Is_Lucid (Value : in Natural) return Boolean is
|
||||
begin
|
||||
for X in 1 .. Limit loop
|
||||
if List (X) = Value then
|
||||
return True;
|
||||
end if;
|
||||
end loop;
|
||||
return False;
|
||||
end Is_Lucid;
|
||||
|
||||
use Ada.Text_IO;
|
||||
Index : Natural;
|
||||
Lucid : Natural;
|
||||
begin
|
||||
Put_Line ("All triplets of lucid numbers <" & Limit'Image);
|
||||
Index := First_Index (List);
|
||||
while List (Index) < Limit loop
|
||||
Lucid := List (Index);
|
||||
if Is_Lucid (Lucid + 2) and Is_Lucid (Lucid + 6) then
|
||||
Put ("(");
|
||||
Put (Lucid'Image);
|
||||
Put (Natural'(Lucid + 2)'Image);
|
||||
Put (Natural'(Lucid + 6)'Image);
|
||||
Put_Line (")");
|
||||
end if;
|
||||
Index := Index + 1;
|
||||
end loop;
|
||||
end Find_Triplets;
|
||||
|
||||
begin
|
||||
Fill;
|
||||
Put_Lucid (First => 1,
|
||||
Last => 25);
|
||||
Count_Lucid (Below => 1000);
|
||||
Put_Lucid (First => 2000,
|
||||
Last => 2005);
|
||||
Find_Triplets (Limit => 250);
|
||||
end Ludic_Numbers;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
ludicGen: function [nmax][
|
||||
result: [1]
|
||||
lst: new 2..nmax+1
|
||||
lst: @2..nmax+1
|
||||
i: 0
|
||||
worked: false
|
||||
while [and? [not? empty? lst] [i < size lst]][
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
# Start with a pool large enough to meet the requirements
|
||||
$Pool = [System.Collections.ArrayList]( 2..22000 )
|
||||
|
||||
# Start with 1, because it's grandfathered in
|
||||
$Ludic = @( 1 )
|
||||
|
||||
# While the size of the pool is still larger than the next Ludic number...
|
||||
While ( $Pool.Count -gt $Pool[0] )
|
||||
{
|
||||
# Add the next Ludic number to the list
|
||||
$Ludic += $Pool[0]
|
||||
|
||||
# Remove from the pool all entries whose index is a multiple of the next Ludic number
|
||||
[math]::Truncate( ( $Pool.Count - 1 )/ $Pool[0])..0 | ForEach { $Pool.RemoveAt( $_ * $Pool[0] ) }
|
||||
}
|
||||
|
||||
# Add the rest of the numbers in the pool to the list of Ludic numbers
|
||||
$Ludic += $Pool.ToArray()
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
# Display the first 25 Ludic numbers
|
||||
$Ludic[0..24] -join ", "
|
||||
''
|
||||
|
||||
# Display the count of all Ludic numbers under 1000
|
||||
$Ludic.Where{ $_ -le 1000 }.Count
|
||||
''
|
||||
|
||||
# Display the 2000th through the 2005th Ludic number
|
||||
$Ludic[1999..2004] -join ", "
|
||||
''
|
||||
|
||||
# Display all Ludic triplets less than 250
|
||||
$TripletStart = $Ludic.Where{ $_ -lt 244 -and ( $_ + 2 ) -in $Ludic -and ( $_ + 6 ) -in $Ludic }
|
||||
$TripletStart.ForEach{ $_, ( $_ + 2 ), ( $_ + 6 ) -join ", " }
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
-- 22 Mar 2025
|
||||
include Settings
|
||||
-- 23 Aug 2025
|
||||
include Setting
|
||||
|
||||
say 'LUDIC NUMBERS'
|
||||
say version
|
||||
|
|
@ -47,6 +47,4 @@ end
|
|||
say; say
|
||||
return
|
||||
|
||||
include Sequences
|
||||
include Functions
|
||||
include Abend
|
||||
include Math
|
||||
|
|
|
|||
|
|
@ -1,73 +0,0 @@
|
|||
Set list = CreateObject("System.Collections.Arraylist")
|
||||
Set ludic = CreateObject("System.Collections.Arraylist")
|
||||
|
||||
'populate the list
|
||||
For i = 1 To 25000
|
||||
list.Add i
|
||||
Next
|
||||
|
||||
'set 1 as the first ludic number
|
||||
ludic.Add list(0)
|
||||
list.RemoveAt(0)
|
||||
|
||||
'variable to count ludic numbers <= 1000
|
||||
up_to_1k = 1
|
||||
|
||||
'determine the succeeding ludic numbers
|
||||
For j = 2 To 2005
|
||||
If list.Count > 0 Then
|
||||
If list(0) <= 1000 Then
|
||||
up_to_1k = up_to_1k + 1
|
||||
End If
|
||||
ludic.Add list(0)
|
||||
Else
|
||||
Exit For
|
||||
End If
|
||||
increment = list(0) - 1
|
||||
n = 0
|
||||
Do While n <= list.Count - 1
|
||||
list.RemoveAt(n)
|
||||
n = n + increment
|
||||
Loop
|
||||
Next
|
||||
|
||||
'the first 25 ludics
|
||||
WScript.StdOut.WriteLine "First 25 Ludic Numbers:"
|
||||
For k = 0 To 24
|
||||
If k < 24 Then
|
||||
WScript.StdOut.Write ludic(k) & ", "
|
||||
Else
|
||||
WScript.StdOut.Write ludic(k)
|
||||
End If
|
||||
Next
|
||||
WScript.StdOut.WriteBlankLines(2)
|
||||
|
||||
'the number of ludics up to 1000
|
||||
WScript.StdOut.WriteLine "Ludics up to 1000: "
|
||||
WScript.StdOut.WriteLine up_to_1k
|
||||
WScript.StdOut.WriteBlankLines(1)
|
||||
|
||||
'2000th - 2005th ludics
|
||||
WScript.StdOut.WriteLine "The 2000th - 2005th Ludic Numbers:"
|
||||
For k = 1999 To 2004
|
||||
If k < 2004 Then
|
||||
WScript.StdOut.Write ludic(k) & ", "
|
||||
Else
|
||||
WScript.StdOut.Write ludic(k)
|
||||
End If
|
||||
Next
|
||||
WScript.StdOut.WriteBlankLines(2)
|
||||
|
||||
'triplets up to 250: x, x+2, and x+6
|
||||
WScript.StdOut.WriteLine "Ludic Triplets up to 250: "
|
||||
triplets = ""
|
||||
k = 0
|
||||
Do While ludic(k) + 6 <= 250
|
||||
x2 = ludic(k) + 2
|
||||
x6 = ludic(k) + 6
|
||||
If ludic.IndexOf(x2,1) > 0 And ludic.IndexOf(x6,1) > 0 Then
|
||||
triplets = triplets & ludic(k) & ", " & x2 & ", " & x6 & vbCrLf
|
||||
End If
|
||||
k = k + 1
|
||||
Loop
|
||||
WScript.StdOut.WriteLine triplets
|
||||
Loading…
Add table
Add a link
Reference in a new issue