合数世纪探求。定义一个世纪的100个年份数字中不存在一个素数(即100个年份数字全为合数)的世纪为合数世纪。探索最早的合数世纪。
思路:
判断连续100年有几个素数,几个合数,不满足条件就一直往后推,直到s==50即可,输出答案。
代码:
#include<time.h>
#include<stdio.h>
#include<math.h>
int main() {
double op,ed;
double time;
op=clock();
long a,b,k;
int s,x;
a=1;
while (1) {
a++;
s=0;
for(b=a*100-99; b<=a*100-1; b+=2) {
x=0;
for(k=3; k<=sqrt(b); k+=2) {
if(b%k==0) {
x=1;
break;
}
}
if(x==0)
break;
s=s+x;
}
if(s==50) {
printf("最早出现的合数世纪为 %ld 世纪!\n",a);
break;
}
}
ed=clock();
time=ed-op;
printf("\n");
printf("time=%lfms\n",time);
return 0;
}
结果: