#8751: 還可以怎樣改更快?


cse210639 (210639)


#include <stdio.h>
using namespace std;
long long int a,i,j,list[8000]={2,3,5,7,13,17,19,23},m=8;
bool cheak;
int main()
{
    for(i=25;i<66000;i+=2)
    {
        cheak=0;
        for(j=0;list[j]*list[j]<=i;j++)
        if(i%list[j]==0)
        {
            cheak=1;
            break;
        }
        if(cheak==0)
        {
            list[m]=i;
            m++;
        }
    }
    while(scanf("%d",&a)==1)
    {
        cheak=0;
        for(j=0;list[j]*list[j]<=a;j+=2)
        if(a%list[j]==0)
        {
            cheak=1;
            break;
        }
        if(cheak==0)printf("質數\n");
        else printf("非質數\n");
    } 
    return 0;
}