#4771: 狂TLE~


hs01n6060 (Crazy小螃蟹)

學校 : 新北市立板橋高級中學
編號 : 13691
來源 : [220.129.67.104]
最後登入時間 :
2024-05-01 12:42:27
d709. 判断质数(一) -- 判断质数系列 | From: [114.32.156.113] | 發表日期 : 2011-01-21 00:01

各位請看一下:

#include <iostream>
using namespace std;

int main(){
    int a[168] = {2, 3}, i, n, j;
    for (i = 2, n = 6; n <= 1000; n += 6){
        for (j = 0; j < i; j++) if (!((n-1) % a[j])) break;
        if (j == i) a[i++] = n - 1;
        for (j = 0; j < i; j++) if (!((n+1) % a[j])) break;
        if (j == i) a[i++] = n + 1;
    }
    while (cin >> n, n)
          if (n == 2 || n == 3) cout << 0 << endl;
          else if (n%6 == 1 && n != 1 || n%6 == 5){
               for (i = 0; a[i] * a[i] <= n; i++)
                   if (!(n % a[i])) {cout << 1 << endl; break;}
               if (a[i] * a[i] > n) cout << 0 << endl;
          }
          else cout << 1 << endl;
}

 
#4773: Re:狂TLE~


cbs951214 (哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈...)

學校 : 康橋雙語學校
編號 : 11868
來源 : [1.162.186.8]
最後登入時間 :
2024-05-27 10:17:05
d709. 判断质数(一) -- 判断质数系列 | From: [114.45.162.78] | 發表日期 : 2011-01-21 11:45

各位請看一下:

#include
using namespace std;

int main(){
    int a[168] = {2, 3}, i, n, j;
    for (i = 2, n = 6; n <= 1000; n += 6){
        for (j = 0; j < i; j++) if (!((n-1) % a[j])) break;
        if (j == i) a[i++] = n - 1;
        for (j = 0; j < i; j++) if (!((n+1) % a[j])) break;
        if (j == i) a[i++] = n + 1;
    }
    while (cin >> n, n)
          if (n == 2 || n == 3) cout << 0 << endl;
          else if (n%6 == 1 && n != 1 || n%6 == 5){
               for (i = 0; a[i] * a[i] <= n; i++)
                   if (!(n % a[i])) {cout << 1 << endl; break;}
               if (a[i] * a[i] > n) cout << 0 << endl;
          }
          else cout << 1 << endl;
}


有種東西叫篩法~~ 
ZeroJudge Forum