Deceptive numbers: Difference between revisions
m
Minor code improvement.
(→UNIX Shell: make it work with zsh's native operator precedence, too) |
m (Minor code improvement.) |
||
Line 354:
#include <iostream>
uint64_t power_modulus(uint64_t base, uint64_t exponent, const uint64_t& modulus) {
if ( modulus == 1 ) {
return 0;
Line 362:
uint64_t result = 1;
while ( exponent > 0 ) {
if ( ( exponent
result = ( result * base ) % modulus;
}
Line 371:
}
bool is_deceptive(const uint32_t& n) {
if ( n % 2 != 0 && n % 3 != 0 && n % 5 != 0 && power_modulus(10, n - 1, n) == 1 ) {
for ( uint32_t divisor = 7; divisor < sqrt(n); divisor += 6 ) {
|