下面是一个求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()平方根函数我一直不明白。我是菜鸟,希望朋友们不要笑话,能给我详细解释一下上面的代码,谢谢!
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()平方根函数我一直不明白。我是菜鸟,希望朋友们不要笑话,能给我详细解释一下上面的代码,谢谢!
{
for(int i=2;i<=Math.Sart(num);i++)
{
if(num%i==0)
return false;
}
return true;
}
就是如果有这个数小的数可以整除就return false
否则true
Math.Sart(num)
只是为了减少循环次数而已
<sum也可
Math.Sqrt()
可是为什么执行后结果的数量会错误。。我用了10个来判断,执行结果是6个。可是0-10只有4个质数。哪里错了。有谁知道?