/// <summary>
/// 素数帮忙类
/// 本类是从.net源码 类 internal static class HashHelpers 类里抽取相应的代码
/// https://referencesource.microsoft.com/#mscorlib/system/collections/hashtable.cs,e8668bf19da49963
/// Hashtable.cs里
/// </summary>
public class PrimeHelper
{
/// <summary>
/// 给定一些素数(除了2)
/// </summary>
public static readonly int[] Primes = {
, , , , , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , ,
, , , , , , , , , , , , ,
, , , , , , , , , , , ,
, , , , , , , , }; /// <summary>
/// 判断是否是素数
/// </summary>
/// <param name="candidate"></param>
/// <returns></returns>
public static bool IsPrime(int candidate)
{
//偶数当然不是素数
if ((candidate & ) != )
{
int limit = (int)Math.Sqrt(candidate);
for (int divisor = ; divisor <= limit; divisor += )
{
if ((candidate % divisor) == )
return false;
}
return true;
} //2是素数
return (candidate == );
} /// <summary>
/// 大于给定数的最小素数
/// </summary>
/// <param name="min"></param>
/// <returns></returns>
public static int GetPrime(int min)
{
if (min < )
{
throw new ArgumentException("给定数必须是自然数");
} //先从给定数组里找
foreach (int prime in Primes)
{
if (prime >= min)
{
return prime;
}
} //给定数组里没有相应的素数,则循环找
//如果min是偶数,则起始值为加1,否则起始值为本身
for (int i = (min | ); i < Int32.MaxValue; i += )
{
if (IsPrime(i) )
return i;
} return min;
} /// <summary>
/// 获取最小素数(2除外)
/// </summary>
/// <returns></returns>
public static int GetMinPrime()
{
return Primes[];
} }

最新文章

  1. 使用matlab进行空间拟合
  2. zendframework 2
  3. 会员管理系统的设计和开发(2)-- RDLC报表的设计及动态加载
  4. linux numfmt 命令--转换数字
  5. [转]centos 下 autoconf版本升级
  6. JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
  7. XCode6之后预编译文件的创建
  8. 史上最全APP推广渠道
  9. Sql Server之旅——第五站 确实不得不说的DBCC命令
  10. 上传预览 easyui部分控件获取focuse 表单验证
  11. zookeeper源码分析-server-util
  12. (六)java结构控制语句
  13. SQL Server 扩展事件
  14. 菜鸟学IT之python词云初体验
  15. Python——Flask框架——电子邮件
  16. linux 7 关闭防火墙 开启sshd服务
  17. 通过eclipse打开jdk native源码
  18. OpenBLAS简介及在Windows7 VS2013上源码的编译过程
  19. mysql my.cnf 配置建议
  20. CSS技巧:逐帧动画抖动解决方案

热门文章

  1. ubuntu 14 编译ARM g2o-20160424
  2. 利用HttpWebRequest类Post数据至URI
  3. 453D Little Pony and Elements of Harmony
  4. intval()函数
  5. 数据库连接池DBUtils
  6. 人脸识别 人工智能(AI)
  7. 编写高质量代码改善C#程序的157个建议——建议38:小心闭包中的陷阱
  8. 企业管理系统——第三周需求&amp;原型改进_张正浩,黄锐斌
  9. C# int?
  10. asp.net微信内置浏览器下Session失效