using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
/// <summary>
//判断一个数是否是质数?
/// </summary>
class Program
{
static void Main(string[] args)
{
int num = 345673; // 345673是一个素数
//int num = 9;
Console.WriteLine("{0} is prime: {1}", num, IsPrime(num));
Console.ReadKey();
}
private static bool IsPrime(int num)
{
bool isPrime = true;
if (num < 2) isPrime = false; // 如果小于2,肯定不是素数
else if (num == 2) isPrime = true; // 2是最小的素数
else if (num % 2 == 0) isPrime = false; // 判断是否能被2整除
else
{
//因为如果一个数不是素数是合数,
//那么一定可以由两个自然数相乘得到,
//其中一个大于或等于它的平方根,一个小于或等于它的平方根。并且成对出现。
for (int i = 3; i <= Math.Floor(Math.Sqrt(num)); i += 2) // 因为前面已经判断过被2整除的情况,所以是 i+=2
{ //
if (num % i == 0)
{
isPrime = false;
break;
}
}
}
return isPrime;
}
}
}