Data update

This commit is contained in:
Ingy döt Net 2025-08-11 18:05:26 -07:00
parent 4d5544505c
commit 4924dd0264
3073 changed files with 55820 additions and 4408 deletions

View file

@ -134,7 +134,7 @@ conversion10:
/* division par 10 unsigned */
/***************************************************/
/* r0 dividende */
/* r0 quotient */
/* r0 quotient */
/* r1 remainder */
divisionpar10U:
push {r2,r3,r4, lr}
@ -148,7 +148,7 @@ divisionpar10U:
sub r1,r4,r2, lsl #1 @ r1 <- r4 - (r2 * 2) = r4 - (r0 * 10)
pop {r2,r3,r4,lr}
bx lr @ leave function
iMagicNumber: .int 0xCCCCCCCD
iMagicNumber: .int 0xCCCCCCCD
/***************************************************/
/* number is prime ? */
/***************************************************/
@ -306,7 +306,7 @@ moduloPuR96:
mov r1,r12
msr cpsr_f, #0 @ no error overflow zero -> flags
100: @ end function
pop {r2-r12,lr} @ restaur registers
pop {r2-r12,lr} @ restaur registers
bx lr @ return
/***************************************************/
/* multiplication 2 registers (64 bits) unsigned */
@ -342,13 +342,13 @@ multiplicationR96U:
msr cpsr_f, #0 @ no error overflow zero -> flags
b 100f
99: @ display message overflow
ldr r0,iAdrszMessMultOver @
bl affichageMess
ldr r0,iAdrszMessMultOver @
bl affichageMess
mov r0,#0
mov r1,#0
msr cpsr_f, #1<<29 @ maj flag carry à 1 et tous les autres à 0
100: @ end function
pop {r3-r8,lr} @ restaur registers
pop {r3-r8,lr} @ restaur registers
bx lr @ return
iAdrszMessMultOver: .int szMessMultOver
/***************************************************/
@ -425,7 +425,7 @@ divisionReg96DU:
mov r2,r6 @ high bits quotient
100: @ end function
pop {r5-r10,lr} @ restaur registers
pop {r5-r10,lr} @ restaur registers
bx lr @ return
/***************************************************/
@ -445,7 +445,7 @@ conversionRegDoubleU:
strb r3,[r5,r4] @ store digit in area index r4
sub r4,r4,#1 @ decrement index
cmp r0,#0 @ low bits quotient = zero ?
bne 1b @ no -> loop
bne 1b @ no -> loop
cmp r1,#0 @ high bits quotient = zero ?
bne 1b @ no -> loop
@ spaces -> begin area
@ -456,7 +456,7 @@ conversionRegDoubleU:
bge 2b @ and loop if > zéro
100: @ end fonction
pop {r0-r5,lr} @ restaur registers
pop {r0-r5,lr} @ restaur registers
bx lr @ return
/***************************************************/
/* division number 64 bits / number 32 bits */

View file

@ -2,12 +2,12 @@ i: 42
n: 0
while [n<42][
if? prime? i [
n: n+1
print ["n =" pad to :string n 2 pad to :string i 20]
i: i + i
]
else [
i: i + 1
]
if? prime? i [
n: n+1
print ["n =" pad to :string n 2 pad to :string i 20]
i: i + i
]
else [
i: i + 1
]
]

View file

@ -1,21 +1,21 @@
i:= 42, n:= 1, result := ""
while (n<43){
if isPrime(i)
result .= n ":`t" RegExReplace(i, "\B(?=(\d{3})+$)", ",") "`n", i*=2, n++
else
i++
if isPrime(i)
result .= n ":`t" RegExReplace(i, "\B(?=(\d{3})+$)", ",") "`n", i*=2, n++
else
i++
}
MsgBox, 262208, , % result
return
isPrime(num){
if !Mod(num, 2) || !Mod(num, 3)
return false
lim := Sqrt(num), i := 5
while (i<lim){
if !Mod(num, i)
return false
i+=2
}
return true
if !Mod(num, 2) || !Mod(num, 3)
return false
lim := Sqrt(num), i := 5
while (i<lim){
if !Mod(num, i)
return false
i+=2
}
return true
}

View file

@ -1,22 +1,22 @@
function isPrime(number)
if (number % 2 = 0) or (number % 3 = 0) then return false
lim = sqr(number)
if (number % 2 = 0) or (number % 3 = 0) then return false
lim = sqr(number)
for i = 5 to lim step 2
if number % i = 0 then return false
next i
for i = 5 to lim step 2
if number % i = 0 then return false
next i
return true
return true
end function
i = 42
counter = 0
while counter < 42
if isPrime(i) then
counter += 1
print "n = "; counter, i
i += i - 1
end if
i += 1
if isPrime(i) then
counter += 1
print "n = "; counter, i
i += i - 1
end if
i += 1
end while
end

View file

@ -7,7 +7,7 @@ bool isPrime(double number)
{
for (double i = number - 1; i >= 2; i--) {
if (fmod(number, i) == 0)
return false;
return false;
}
return true;
}
@ -20,19 +20,19 @@ int main()
if (isPrime(i))
{
n++;
cout.width(1); cout << left << "n = " << n;
cout.width(1); cout << left << "n = " << n;
//Only for Text Alignment
if (n < 10)
{
cout.width(40); cout << right << i << endl;
}
else
{
cout.width(39); cout << right << i << endl;
}
{
cout.width(40); cout << right << i << endl;
}
else
{
cout.width(39); cout << right << i << endl;
}
i += i - 1;
}
i++;
}
i++;
}
return 0;
}

View file

@ -3,15 +3,15 @@
((= 3 n) t) ; Hard-code "3 is a prime"
((evenp n) nil) ; If we're looking at an even now, it's not a prime
(t ; If it is divisible by an odd number below its square root, it's not prime
(do* ((i 3 (incf i 2))) ; Initialize to 3 and increment by 2 on every loop
((or (> i (isqrt n)) ; Break condition index exceeds its square root
(zerop (mod n i))) ; Break condition it is divisible
(not (zerop (mod n i)))))))) ; Returns not divisible, aka prime
(do* ((i 3 (incf i 2))) ; Initialize to 3 and increment by 2 on every loop
((or (> i (isqrt n)) ; Break condition index exceeds its square root
(zerop (mod n i))) ; Break condition it is divisible
(not (zerop (mod n i)))))))) ; Returns not divisible, aka prime
(do ((i 42) ; Initialize index to 42
(c 0)) ; Initialize count of primes to 0
((= c 42)) ; Break condition when there are 42 primes
(incf i) ; Increments index by unity
(if (primep i)(progn (incf c) ; If prime increment count of primes
(format t "~&~5<~d~;->~>~20<~:d~>" c i) ; Display count of primes found and the prime
(incf i (decf i))))) ; Increment index to previous index plus the prime
(format t "~&~5<~d~;->~>~20<~:d~>" c i) ; Display count of primes found and the prime
(incf i (decf i))))) ; Increment index to previous index plus the prime

View file

@ -0,0 +1,33 @@
create or replace function primep(nnumber) as (
select
case
when nnumber < 2 then false
when nnumber = 2 then true
else NOT exists
( select * from
( select (nnumber % anumber) as modNumber
from (select unnest(range(2, 1 + sqrt(nnumber)::BIGINT)) as anumber)
)
where modNumber = 0
)
end
);
create or replace function task(start, mx) as table (
with recursive cte as (
select start::HUGEINT as ix, primep(start) as primep0, 0::HUGEINT as n,
[]::HUGEINT[] as display
union all
select if (primep0, ix+ix, ix+1) as ix,
if (primep0, primep(ix+ix), primep(ix+1)) as primep0,
if (primep0,1,0) + n as n,
if (primep0, [n+1, ix], []) as display
from cte
where n < mx
) select display
from cte
where display != []
limit mx
);
from task(42, 42);

View file

@ -10,7 +10,7 @@ procedure main()
write(right(n,2),": ",comma_string(i))
i +:= i
} else
i +:= 1
i +:= 1
}
end

View file

@ -2,24 +2,24 @@
# Increment loop index within loop body
# # Variables:
# # Variables:
#
integer INDX_START=42 N_PRIMES=42
# # Functions:
# # Functions:
#
# # Function _isprime(n) return 1 for prime, 0 for not prime
# # Function _isprime(n) return 1 for prime, 0 for not prime
#
function _isprime {
typeset _n ; integer _n=$1
typeset _i ; integer _i
typeset _n ; integer _n=$1
typeset _i ; integer _i
(( _n < 2 )) && return 0
for (( _i=2 ; _i*_i<=_n ; _i++ )); do
(( ! ( _n % _i ) )) && return 0
done
return 1
(( _n < 2 )) && return 0
for (( _i=2 ; _i*_i<=_n ; _i++ )); do
(( ! ( _n % _i ) )) && return 0
done
return 1
}
######
@ -27,9 +27,9 @@ function _isprime {
######
integer i n=0
for ((i=INDX_START; n<N_PRIMES; i++)); do
_isprime ${i}
if (( $? )); then
printf "%,18d is prime, %2d primes found(so far)\n" ${i} $((++n))
(( i+=$i ))
fi
_isprime ${i}
if (( $? )); then
printf "%,18d is prime, %2d primes found(so far)\n" ${i} $((++n))
(( i+=$i ))
fi
done

View file

@ -25,45 +25,45 @@
{upto 42}
}
->
n = 1 43
n = 2 89
n = 3 179
n = 4 359
n = 5 719
n = 6 1439
n = 7 2879
n = 8 5779
n = 9 11579
n = 10 23159
n = 11 46327
n = 12 92657
n = 13 185323
n = 14 370661
n = 15 741337
n = 16 1482707
n = 17 2965421
n = 18 5930887
n = 19 11861791
n = 20 23723597
n = 21 47447201
n = 22 94894427
n = 23 189788857
n = 24 379577741
n = 25 759155483
n = 26 1518310967
n = 27 3036621941
n = 28 6073243889
n = 29 12146487779
n = 30 24292975649
n = 31 48585951311
n = 32 97171902629
n = 33 194343805267
n = 34 388687610539
n = 35 777375221081
n = 36 1554750442183
n = 37 3109500884389
n = 38 6219001768781
n = 39 12438003537571
n = 40 24876007075181
n = 41 49752014150467
n = 42 99504028301131
n = 1 43
n = 2 89
n = 3 179
n = 4 359
n = 5 719
n = 6 1439
n = 7 2879
n = 8 5779
n = 9 11579
n = 10 23159
n = 11 46327
n = 12 92657
n = 13 185323
n = 14 370661
n = 15 741337
n = 16 1482707
n = 17 2965421
n = 18 5930887
n = 19 11861791
n = 20 23723597
n = 21 47447201
n = 22 94894427
n = 23 189788857
n = 24 379577741
n = 25 759155483
n = 26 1518310967
n = 27 3036621941
n = 28 6073243889
n = 29 12146487779
n = 30 24292975649
n = 31 48585951311
n = 32 97171902629
n = 33 194343805267
n = 34 388687610539
n = 35 777375221081
n = 36 1554750442183
n = 37 3109500884389
n = 38 6219001768781
n = 39 12438003537571
n = 40 24876007075181
n = 41 49752014150467
n = 42 99504028301131

View file

@ -1,10 +1,10 @@
i := 42:
count := 0:
while(count < 42) do
i := i+1:
if type(i,prime) then
count := count + 1:
printf("n=%-2d %19d\n", count,i):
i := 2*i -1:
end if:
i := i+1:
if type(i,prime) then
count := count + 1:
printf("n=%-2d %19d\n", count,i):
i := 2*i -1:
end if:
end do:

View file

@ -0,0 +1,27 @@
local function is_prime(n)
assert(n % 1 == 0, "Argument must be an integer.")
if n < 2 then return false end
if n % 2 == 0 then return n == 2 end
if n % 3 == 0 then return n == 3 end
local d = 5
while d * d <= n do
if n % d == 0 then return false end
d += 2
if n % d == 0 then return false end
d += 4
end
return true
end
local count = 0
local i = 42
while count < 42 do
if is_prime(i) then
++count
local str1 = string.format("%2d", count)
local str2 = string.format("%18s", string.formatint(i))
print($"{str1}: {str2}")
i = 2 * i - 1
end
++i
end

View file

@ -0,0 +1,50 @@
Rebol [
title: "Rosetta code: Increment loop index within loop body"
file: %Increment_loop_index_within_loop_body.r3
url: https://rosettacode.org/wiki/Increment_loop_index_within_loop_body
needs: 3.0.0
]
;; prime? native function is available since 3.19.5
if unset? 'prime? [
;; Naive Rebol implementation
prime?: function [n [integer!]] [
if n < 2 [return false]
if zero? n % 2 [return n == 2]
if zero? n % 3 [return n == 3]
d: 5
while [d * d <= n][
if zero? n % d [return false]
d: d + 2
if zero? n % d [return false]
d: d + 4
]
true
]
]
;; Helper to format number with commas
format-commas: function [num [integer!]] [
str: reverse form num
while [not tail? str: skip str 3][
str: insert str ","
]
reverse head str
]
;; Main logic
index: 42 ;; start index at 42 (before first increment)
count-primes: 0 ;; count of primes found
while [count-primes < 42] [
index: index + 1 ;; increment index by 1 at iteration start
if prime? index [
count-primes: count-primes + 1
print rejoin [
pad count-primes -2
": prime = "
pad format-commas index -18
]
;; increment index by the prime itself (old index + prime)
index: index + index
] ()
]