Curzon numbers: Difference between revisions

m
do one addition less
(→‎{{header|Ruby}}: Switched to modular pow like Python)
m (do one addition less)
Line 267:
#include <vector>
 
intuint64_t modpow(uint64_t base, uint64_t exp, uint64_t mod) {
if (mod == 1)
return 0;
Line 281:
 
bool is_curzon(uint64_t n, uint64_t k) {
const uint64_t mr = k * n + 1;
return modpow(k, n, m)r + 1) == mr;
}
 
Line 1,064:
 
let is_curzon k n =
let mr = succ (k * n) in mr = succmodpow (modpowsucc mr) k n)
 
let () =
Line 1,198:
=={{header|Python}}==
<syntaxhighlight lang="python">def is_Curzon(n, k):
mr = k * n + 1
return pow(k, n, m)r + 1) == mr
 
for k in [2, 4, 6, 8, 10]:
Line 1,210:
for i, c in enumerate(curzons[:50]):
print(f'{c: 5,}', end='\n' if (i + 1) % 25 == 0 else '')
print(f' Thousandth Curzon with k = {k}: {curzons[999]}.\n')</syntaxhighlight>
</syntaxhighlight>{{out}}
<pre>
Curzon numbers with k = 2:
Line 1,357:
Enumerator.new do |y|
(1..).each do |n|
mr = k * n + 1
y << n if k.pow(n, m )r + 1) == mr
end
end
559

edits