Evo neki hint, vezano za oblik 2^k - 1.
Posmatramo neki broj x; kako ustanoviti da li spada u trazenu grupu? Ja bih pokusao ovako. Dodam 1 (jedinicu) na x i dobijem x1, i zatim udjem u petlju:
Code:
while ((x1 > 0) && (x1 % 2) == 0) // x1 je int, podrazumevano
x1 >>= 1; // shift-ujemo ga u desno za 1 bit, ekvivalentan kod je: x1 = x1 / 2;
Na izlazu iz petlje, ako je x1 = 0, tada je polazni broj x upravo oblika 2^k - 1. Da li je Mersenov broj, e to moras da proveris da li je i prost
.
Pozz