Автор: exp (16.12.2008 в 12:08)
Это был похоже неправильный вариант
конечный вариант вроде такой ,) если простые числа были 3 5 7 11 45
while (i < count) {
if ((A[i] &~ A[i]-1) == 0) A[i] = max;
i++;
} |
// upd:
только-что понял, что 45 не простое число т.к. делится на 5 :)
// ++upd:
разобрался каким боком здесь числа мерсена :)
int i=0,m=1,u=1; //
for (i=1; i< 112; i++) {
char* just ="just";
for (u=1, m=2; m<i; m=(u<<1)+1, u = m) {
if ((i % m) == 0) {
just ="NO";
break;
}
}
printf(" %i %s\n", i, just);
} |