ÅжÏËØÊý·¨
1¡¢Çî¾ÙÅжϷ¨1:´Ó2µ½n-1ÅжÏÓÐûÓÐÄÜÕû³ýnµÄÊý¡£Èç¹ûÓУ¬Ôò²»ÊÇËØÊý£¬·ñÔò£¬ÊÇËØÊý¡£
ÈçÏÂʾÀý³ÌÐò:
int _prime(int n)
{
if (n < 2)
{
return 0;
}
int i;
for (i = 2; i < n; i++)
{
if (n%i == 0)
{
return 0;
}
}
return 1;
}
2¡¢Çî¾ÙÅжϷ¨2:ÔÚÉÏÁгÌÐòµÄµÄ»ù´¡ÉϽøÐиĽø£¬´Ó2Ò»Ö±Ëãµ½sqrt(n)£¬ÕâÑùËã·¨¸´ÔӶȽµµÍÁ˺ܶࡣ
ÈçÏÂʾÀý³ÌÐò:
int_prime(int n)
{
if (n < 2)
{
return 0;
}
int i;
for (i = 2; i*i <= n; i++)
{
if (n%i == 0)
{
return 0;
}
}
return 1;
}
ÅжÏÒ»¸öÊýµÄ·¶Î§ÀïÓжàÉÙ¸öËØÊý
1¡¢Eratosthenesɸ·¨:ÔçÔÚ2000ÄêÇ°ÈËÃǾÍÖªµÀÁËÒ»¸ö²»±ØÓóý·¨¶øÕÒ³ö2~NµÄËùÓÐÖÊÊýµÄ·½·¨¡£¼ÙÉèÒ»¸öºÜÉñÆæµÄɸ×Ó£¬¿ÉÒÔ¸ø³öÒ»¸öÊý£¬ÀýÈçi£¬Õâ¸öɸ×ÓÓа취°ÑiËùÓеı¶ÊýÈ¥µô¡£ÇëÓÃÕâ¸ö·½·¨Çó³ö2~NÖ®¼äµÄËùÓÐÖÊÊý¡£¼´Eratosthenesɸѡ·¨¡£
ÈçÏÂʾÀý³ÌÐò:
#define N 1000
char flag[N];
void fun()
{
long long i, j;
for (i = 0; i < N; i++)
{
flag[i] = 1;
}
flag[0] = flag[1] = 0;
for (i = 2; i < N; i++)
{
if (!flag[i]) continue;
for (j = i*i; j < N; j += i)
{
flag[j] = 0;
}
}
}
ÈçÉÏÊý×é,ϱêΪÅжϵÄÊý£¬ÈçÕâ¸öÊý×é[ϱê] = 1Ôòϱê´ú±íµÄÊýΪËØÊý£¬ÕâÖÖ·½·¨´ó´ó¼õÉÙÁËÔËËãÁ¿£¬Ìá¸ßÁ˼ÆËã»úµÄÔËËãЧÂÊ¡£