(C)
/*
用于研究质数种族的C语言程序。
计算从2到999的q的qn+1对qn-1的第一导程。
作者:安迪·马丁oldadit@gmail.com 8/12/2016.
需要Kim Walisch的素数筛库http://primesieve.org
基于primesieve_iterator.c示例的迭代。
*/
#包括<primesieve.h>
#包括<inttypes.h>
#包括<stdio.h>
#定义UPDATE_COUNT 10000000000ull
无效种族(uint64_t q)
{
uint64_t素数=0;
uint64_t m1=0;
uint64_tm_1=0;
uint64_t rem=0;
uint64_t update=update_COUNT;
primesive_iteratorπ;
primesieve_init(&pi);
while(prime=primesieve_next_prime(&pi)){
如果((rem=素数%q)==1){
m1+=1;
}否则,如果(rem==q-1){
m1+=1;
}
如果(m1>m1){
printf(“比赛mod%3llu以%12llu结束,带有%11llu pi(x;%llu,1)和%11lluπ(x,%llu、%llu)\n”,
q、 素数m1,q,m1,q-1);
断裂;
}
/*启用q=3、6、8、12、24、168的长跑更新*/
if(prime>update){
printf(“在质数%llu处进行的竞争mod%llu,m1%llu和m1%mlu差异:%llu\n”,
q、 素数、m1、m1和m1-m1);
update+=update_COUNT;
}
}
primesieve_free_iterator(&pi);
}
int主()
{
uint64_t i;
对于(i=2;i<1000;i++){种族(i);}
返回(0);
}