#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int number = 0;
int *prime
= malloc(1000*sizeof(int)); unsigned long counter = 0;
int ptr = 0;
prime[ptr] = 2;
ptr++;
prime[ptr] = 3;
ptr++;
for (int number = 5; number <= 1000; number +=2){
for (int i = 1; i <= ptr; i++){//課本範例是i < ptr 如果不寫=的話迴圈會掛掉
counter++;
if ((number % prime[i]) == 0)
break;
if (ptr == i){
prime[ptr++] = number;
break; //這應該已經是迴圈終點了可是這break不能省
}
}
}
for (int i = 0; i < ptr; i++)
printf("the program run %d times\n", counter
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBtYWluKHZvaWQpIAp7CiAgICBpbnQgbnVtYmVyID0gMDsKICAgIGludCAqcHJpbWUgPSBtYWxsb2MoMTAwMCpzaXplb2YoaW50KSk7CiAgICB1bnNpZ25lZCBsb25nIGNvdW50ZXIgPSAwOwogICAgaW50IHB0ciA9IDA7CiAKICAgIHByaW1lW3B0cl0gPSAyOwogICAgcHRyKys7CiAgICBwcmltZVtwdHJdID0gMzsKICAgIHB0cisrOwogIAogICAgZm9yIChpbnQgbnVtYmVyID0gNTsgbnVtYmVyIDw9IDEwMDA7IG51bWJlciArPTIpewogICAgCWZvciAoaW50IGkgPSAxOyBpIDw9IHB0cjsgaSsrKXsvL+iqsuacrOevhOS+i+aYr2kgPCBwdHIgIOWmguaenOS4jeWvqz3nmoToqbHov7TlnIjmnIPmjpvmjokKICAgIAkJY291bnRlcisrOwogICAgCQlpZiAoKG51bWJlciAlIHByaW1lW2ldKSA9PSAwKQogICAgCQkJYnJlYWs7CiAgICAJICAgCWlmIChwdHIgPT0gaSl7CiAgICAJCXByaW1lW3B0cisrXSA9IG51bWJlcjsKICAgIAkgICAgCWJyZWFrOwkJCQkJLy/pgJnmh4noqbLlt7LntpPmmK/ov7TlnIjntYLpu57kuoblj6/mmK/pgJlicmVha+S4jeiDveecgQogICAgfQogICAgfQogICAgfQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwdHI7IGkrKykKICAgICAgICBwcmludGYoIiVkXG4iLCBwcmltZVtpXSk7CiAgICBwcmludGYoInRoZSBwcm9ncmFtIHJ1biAlZCB0aW1lc1xuIiwgY291bnRlcik7CiAgICAgIGZyZWUocHJpbWUpOwogICAgICByZXR1cm4gMDsKfQ==