a007.
判斷質數
| From: [114.42.213.72] |
發表日期
:
2015-07-04 15:14
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
bool prime[999999];// 全域變數的陣列,每一格將自動初始化為false。
int All_prime()
{
int i, j, k;
int sqrt_prime = sqrt(999999);
prime[0] = prime[1] = true;
for (i = 2; i <= sqrt_prime; i++)
{
if (!prime[i])
{
for (k = (200000 - 1) / i, j = i*k; k >= i; k--, j-= i) //k是倍率 j是倍數 0.01秒算完
{
if (!prime[k])
{
prime[j] = true;
}
}
}
}
return 0;
}
int main()
{
int num,i;
All_prime();
while (scanf("%d", &num) != EOF)
{
if (prime[num]==true)
printf("非質數\n",num);
else
printf("質數\n",num);
}
}
第 1 測資點(100%): RE (SIGSEGV) 執行時期錯誤記憶體區段錯誤!
Segmentation fault
這是甚麼意思阿...