Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
66
Task/Mertens-function/COBOL/mertens-function.cob
Normal file
66
Task/Mertens-function/COBOL/mertens-function.cob
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. MERTENS.
|
||||
|
||||
DATA DIVISION.
|
||||
WORKING-STORAGE SECTION.
|
||||
01 VARIABLES.
|
||||
03 M PIC S99 OCCURS 1000 TIMES.
|
||||
03 N PIC 9(4).
|
||||
03 K PIC 9(4).
|
||||
03 V PIC 9(4).
|
||||
03 IS-ZERO PIC 99 VALUE 0.
|
||||
03 CROSS-ZERO PIC 99 VALUE 0.
|
||||
|
||||
01 OUTPUT-FORMAT.
|
||||
03 OUT-ITEM.
|
||||
05 OUT-NUM PIC -9.
|
||||
05 FILLER PIC X VALUE SPACE.
|
||||
03 OUT-LINE PIC X(30) VALUE SPACES.
|
||||
03 OUT-PTR PIC 99 VALUE 4.
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
BEGIN.
|
||||
PERFORM GENERATE-MERTENS.
|
||||
PERFORM WRITE-TABLE.
|
||||
PERFORM COUNT-ZEROES.
|
||||
STOP RUN.
|
||||
|
||||
GENERATE-MERTENS.
|
||||
MOVE 1 TO M(1).
|
||||
PERFORM MERTENS-OUTER-LOOP VARYING N FROM 2 BY 1
|
||||
UNTIL N IS GREATER THAN 1000.
|
||||
|
||||
MERTENS-OUTER-LOOP.
|
||||
MOVE 1 TO M(N).
|
||||
PERFORM MERTENS-INNER-LOOP VARYING K FROM 2 BY 1
|
||||
UNTIL K IS GREATER THAN N.
|
||||
|
||||
MERTENS-INNER-LOOP.
|
||||
DIVIDE N BY K GIVING V.
|
||||
SUBTRACT M(V) FROM M(N).
|
||||
|
||||
WRITE-TABLE.
|
||||
DISPLAY "The first 99 Mertens numbers are: "
|
||||
PERFORM WRITE-ITEM VARYING N FROM 1 BY 1
|
||||
UNTIL N IS GREATER THAN 99.
|
||||
|
||||
WRITE-ITEM.
|
||||
MOVE M(N) TO OUT-NUM.
|
||||
STRING OUT-ITEM DELIMITED BY SIZE INTO OUT-LINE
|
||||
WITH POINTER OUT-PTR.
|
||||
IF OUT-PTR IS EQUAL TO 31,
|
||||
DISPLAY OUT-LINE,
|
||||
MOVE 1 TO OUT-PTR.
|
||||
|
||||
COUNT-ZEROES.
|
||||
PERFORM TEST-N-ZERO VARYING N FROM 2 BY 1
|
||||
UNTIL N IS GREATER THAN 1000.
|
||||
DISPLAY "M(N) is zero " IS-ZERO " times.".
|
||||
DISPLAY "M(N) crosses zero " CROSS-ZERO " times.".
|
||||
|
||||
TEST-N-ZERO.
|
||||
IF M(N) IS EQUAL TO ZERO,
|
||||
ADD 1 TO IS-ZERO,
|
||||
SUBTRACT 1 FROM N GIVING K,
|
||||
IF M(K) IS NOT EQUAL TO ZERO,
|
||||
ADD 1 TO CROSS-ZERO.
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
-- 23 Aug 2025
|
||||
-- 3 Mar 2026
|
||||
include Setting
|
||||
arg xx
|
||||
if xx = '' then
|
||||
|
|
@ -8,14 +8,16 @@ say 'MERTENS FUNCTION'
|
|||
say version
|
||||
say
|
||||
call Tasks1 xx
|
||||
call Timer 'R'
|
||||
call Tasks2 xx
|
||||
call Timer 'R'
|
||||
call Tasks3 xx
|
||||
call Timer 'R'
|
||||
exit
|
||||
|
||||
Tasks1:
|
||||
procedure expose squa.
|
||||
procedure expose squa. memo.
|
||||
arg xx
|
||||
call Time('r')
|
||||
say 'Tasks using Sieve...'
|
||||
call Squarefrees 2*xx
|
||||
if xx < 100 then
|
||||
|
|
@ -46,13 +48,11 @@ end
|
|||
say
|
||||
say 'M1 thru M'xx 'equals zero' a 'times'
|
||||
say 'M1 thru M'xx 'crosses zero' b 'times'
|
||||
say Format(Time('e'),,3) 'seconds'; say
|
||||
return
|
||||
|
||||
Tasks2:
|
||||
procedure expose squa.
|
||||
procedure expose squa. memo.
|
||||
arg xx
|
||||
call Time('r')
|
||||
say 'Tasks using Moebius function...'
|
||||
if xx < 100 then
|
||||
say 'M1 thru M'xx
|
||||
|
|
@ -75,13 +75,11 @@ end
|
|||
say
|
||||
say 'M1 thru M'xx 'equals zero' a 'times'
|
||||
say 'M1 thru M'xx 'crosses zero' b 'times'
|
||||
say Format(Time('e'),,3) 'seconds'; say
|
||||
return
|
||||
|
||||
Tasks3:
|
||||
procedure expose squa.
|
||||
procedure expose squa. memo.
|
||||
arg xx
|
||||
call Time('r')
|
||||
say 'Tasks using Squarefree function...'
|
||||
if xx < 100 then
|
||||
say 'M1 thru M'xx
|
||||
|
|
@ -109,7 +107,7 @@ end
|
|||
say
|
||||
say 'M1 thru M'xx 'equals zero' a 'times'
|
||||
say 'M1 thru M'xx 'crosses zero' b 'times'
|
||||
say Format(Time('e'),,3) 'seconds'; say
|
||||
return
|
||||
|
||||
-- Squarefrees; Factors; Even; Odd; Moebius; Timer
|
||||
include Math
|
||||
|
|
|
|||
6
Task/Mertens-function/Uiua/mertens-function.uiua
Normal file
6
Task/Mertens-function/Uiua/mertens-function.uiua
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
Moebius ← +0/ׯ≤1⊕⧻⊸⊛°/×
|
||||
Mertens ← |1 memo(⨬(+⊃(Mertens-1|Moebius)|1)⊸=1)
|
||||
&s↯∞_10≡Mertens↘1⇡101
|
||||
⊃(&p$"Crosses zero _ times"/+⌕0_1=0
|
||||
| &p$"Equals zero _ times"/+
|
||||
)=0≡Mertens↘1⇡1001
|
||||
Loading…
Add table
Add a link
Reference in a new issue