Anonymous user
Factors of a Mersenne number: Difference between revisions
m
→{{header|C++}}: simplifications
Not a robot (talk | contribs) (Add 8086 assembly) |
m (→{{header|C++}}: simplifications) |
||
Line 646:
<lang cpp>#include <iostream>
#include <cstdint>
typedef uint64_t integer;
Line 652 ⟶ 651:
integer bit_count(integer n) {
integer count = 0;
n >>= 1;
return count;
}
Line 661 ⟶ 658:
integer mod_pow(integer p, integer n) {
integer square = 1;
for (integer bits = bit_count(p); bits > 0; square %= n) {
square <<= 1;
}
return square;
Line 676 ⟶ 671:
if (n % 2 == 0)
return n == 2;
for (integer p = 3; p * p <= n; p += 2)
if (n % p == 0)
return false;
return true;
}
integer find_mersenne_factor(integer p) {
for (integer k = 0, q = 1;;) {
▲ if (mod_pow(p, q) == 1 && is_prime(q))
}
return 0;
Line 698 ⟶ 687:
int main() {
std::cout << find_mersenne_factor(929) <<
return 0;
}</lang>
|