我收到此错误:
无法隐式转换类型' ulong'到了布尔'
在这里(你*你)for (ulong u = 2; u * u; u++)
下面的代码块。
static bool IsPrime(ulong Num)
{
if (Num < 2) return false;
else if (Num < 4) return true;
else if (Num % 2 == 0) return false;
for (ulong u = 2; u * u; u++)
if (Num % u == 0) return false;
return true;
}
答案 0 :(得分:3)
检查MSDN是否关键字:
每个for语句定义初始值设定项,条件和迭代器 部分。这些部分通常决定循环次数 迭代。
所以第二部分是一个条件,必须隐式转换为bool。由于long类型无法隐式转换,因此会出现编译时错误。 我想这就是你想要做的事情:
static bool IsPrime(ulong Num)
{
if (Num < 2)
return false;
else if (Num < 4)
return true;
else if (Num % 2 == 0)
return false;
for (ulong u = 2; u * u < Num; u++)
if (Num % u == 0)
return false;
return true;
}