Data update
This commit is contained in:
parent
4d5544505c
commit
4924dd0264
3073 changed files with 55820 additions and 4408 deletions
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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
|
||||
]
|
||||
]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
@ -10,7 +10,7 @@ procedure main()
|
|||
write(right(n,2),": ",comma_string(i))
|
||||
i +:= i
|
||||
} else
|
||||
i +:= 1
|
||||
i +:= 1
|
||||
}
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
] ()
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue