题目内容:
从键盘上输入一个正整数n(n>=2),判断是否为素数。
如果输入的数n小于2,则要求重新输入,直到输入的数满足条件为止。
最好使用函数实现,返回值类型为布尔类型。
例:
(1)输入:12 输出:12 is not a prime number.
(2)输入:7 输出:7 is a prime number.
(3)输入的数不满足条件时运行如下图所示:
主要是不清楚函数实现bool值的问题,希望大佬指点
//true is prime
public bool IsPrime(int n)
{
bool isFind = false;
for (int i = 2; i <= n - 1; i++)
{
if (n % i == 0)
{
isFind = true;
break;
}
}
return isFind
}
static bool prime(int n)
{
if (n < 2) return false;
if (n == 2) return true;
return Enumerable.Range(2, n - 2).All(x => n % x != 0);
}
public static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
if (prime(n))
Console.WriteLine("{0} is a prime number.", x);
else
Console.WriteLine("{0} is not a prime number.", x);
}
class Program
{
static void Main(string[] args)
{
Console.Write("Please input a number n(n>=2):");
while (true)
{
string _inputNumStr = Console.ReadLine();
int _inputNum = -1;
if (int.TryParse(_inputNumStr, out _inputNum))
{
if (IsPrime(_inputNum))
Console.WriteLine(string.Format("{0} is a prime number.", _inputNum));
}
Console.Write("Please reinput n(n>=2):");
}
}
static bool IsPrime(int n)
{
if (n < 2) return false;
if (n == 2) return true;
int maxVal = (int)Math.Sqrt(n) + 1;
for (int i = 2; i < maxVal; i++)
{
if (n % i == 0) return false;
}
return true;
}
}