下面是一个求0——1000之间的质数个数:using System;
class zhishu
{
    public static void Main()
    {
        int count=0;
        for(int i=2;i<=1000;i++)
        {
             if(iszhishu(i))
             count++;
        }
        Console.WriteLine(count);
    }
    static bool iszhishu(int num)
    {
        for(int i=2;i<=Math.Sart(num);i++)
        {
            if(num%i==0)
            return false;
        }
        return true;
    }
}这是我仿照老师写出的代码。以上代码执行都没问题,可是执行后发现结果错误。另外我不明白num参数为什么没有一个范围。确定质数方法的iszhishu()函数是依据什么实现,为什么要用Math.sart()平方根函数我一直不明白。我是菜鸟,希望朋友们不要笑话,能给我详细解释一下上面的代码,谢谢!

解决方案 »

  1.   

    程序是返回1000内素数,static bool iszhishu(int num)
        {
            for(int i=2;i<=Math.Sart(num);i++)
            {
                if(num%i==0)
                return false;
            }
            return true;
        }
    就是如果有这个数小的数可以整除就return false
    否则true
    Math.Sart(num)
    只是为了减少循环次数而已
    <sum也可
      

  2.   

    错误是因为方法名错了吧?
    Math.Sqrt()
      

  3.   

    我大概了解了,Math.Sqrt()是我输入错误。。我执行的时候是正确的。。
    可是为什么执行后结果的数量会错误。。我用了10个来判断,执行结果是6个。可是0-10只有4个质数。哪里错了。有谁知道?