查找素数的代码b / w 100到1000不起作用

时间:2013-10-23 19:08:08

标签: c

它的打印206,哪里出错了?

#include<stdio.h>
#include<conio.h>

void main()
{
    int n ,c,m;
    n=100;
    c=0;

    while(n<1000)
    {
       for(m=2;m<10;m++)      //count c  for non prime numbers
       {
           if(n%m==0)
           {
               c++;
               m=100;
           }
       }
       n++;
    }
    printf("%d", 900-c);
    getch();
}

1 个答案:

答案 0 :(得分:0)

您的代码存在一些严重的设计缺陷。让我们从头开始:

在下限接近零的特定范围内倾倒一系列素数的最有效方法(据我所知)是使用 Eratosthenes算法。参见

Sieve of Eratosthenes algorithm in C

请注意,这是一个不同的问题,询问给定的数字是否为素数:通常通过遍历素数来解决,包括要测试的数字的平方根。