列舉演算法:合數世紀探求。定義一個世紀的100個年份數字中不存在一個素數(即100個年份數字全為合數)的世紀為合數世紀。探索最早的合數世紀。
阿新 • • 發佈:2020-12-19
合數世紀探求。定義一個世紀的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;
}
結果: