我如何确定一个正整数是否为素数?
How do i find if a positive integer is prime or not?
我对 C# 语言还很陌生,我一直在研究这个程序来找出一个正整数是否为素数。我做错了什么,我该怎么做。提前谢谢你
static void Main(string[] args)
{
if (FindPrime(47))
{
Console.WriteLine("Prime");
}
else
{
Console.WriteLine("Not Prime");
}
Console.readLine();
}
internal static bool FindPrime(int number)
{
if (number == 1) return false;
if (number == 2) return true;
if (number % 2 != 0) return false;
Var SquareRoot = (int)Math.Floor(Math.Sqrt(number));
for (int i = 3; i <= squareRoot; i += 2)
{
if (number % i == 0) return false;
}
return true;
}
有一本维基百科解释了素数的性质。看看吧。
我在 python 做过同样的项目,我在那里所做的是将已知素数保存在一个变量中,并根据所有已知素数检查当前数。
ei.
a) prime_number = [2]
3 % 2 != 0 => Add to prime_number
b) prime_number = [2, 3]
4 % 2 == 0 => Not a prime number, go to next number
c) prime_number = [2, 3]
5 % 2 != 0 => Test against other prime numbers
5 % 3 != 0 => Add to prime number
d) prime_number = [2, 3, 5]
6 % 2 == 0 => Not a prime number, go to next number
所以 prime_number 变量的大小增加了。
我对 C# 语言还很陌生,我一直在研究这个程序来找出一个正整数是否为素数。我做错了什么,我该怎么做。提前谢谢你
static void Main(string[] args)
{
if (FindPrime(47))
{
Console.WriteLine("Prime");
}
else
{
Console.WriteLine("Not Prime");
}
Console.readLine();
}
internal static bool FindPrime(int number)
{
if (number == 1) return false;
if (number == 2) return true;
if (number % 2 != 0) return false;
Var SquareRoot = (int)Math.Floor(Math.Sqrt(number));
for (int i = 3; i <= squareRoot; i += 2)
{
if (number % i == 0) return false;
}
return true;
}
有一本维基百科解释了素数的性质。看看吧。
我在 python 做过同样的项目,我在那里所做的是将已知素数保存在一个变量中,并根据所有已知素数检查当前数。
ei.
a) prime_number = [2]
3 % 2 != 0 => Add to prime_number
b) prime_number = [2, 3]
4 % 2 == 0 => Not a prime number, go to next number
c) prime_number = [2, 3]
5 % 2 != 0 => Test against other prime numbers
5 % 3 != 0 => Add to prime number
d) prime_number = [2, 3, 5]
6 % 2 == 0 => Not a prime number, go to next number
所以 prime_number 变量的大小增加了。