C#判断素数的算法

素数是只能被1或本身整除,且不能为其他两个整数的乘积。1、2、3本身就是素数,判断一个数是否为素数,只需要用这个值依次除以2到它的开方数,如果其中有一个数可以整除,那么该值不为素数,返之为素数。代码如下:

using System;
using System.Collections.Generic;
using System.Text;
namespace ExPrimeNumber
{
class PrimeNumber
{
public bool primeNumber(int n)
{
bool b = true;
if (n == 1 || n == 2)
b = true;
else
{
int sqr = Convert.ToInt32(Math.Sqrt(n));
for (int i = sqr; i > 2; i--)
{
if (n % i == 0)
{
b = false;
}
}
}
return b;
}
static void Main(string[] args)
{
Console.Write("请输入一个数:");
int n = Convert.ToInt32(Console.ReadLine ());
PrimeNumber p=new PrimeNumber ();
bool b=p.primeNumber(n);
if (b)
Console.WriteLine("{0}是素数",n);
else
Console.WriteLine("{0}不是素数",n);
}
}
}

时间: 2024-10-09 16:13:58

C#判断素数的算法的相关文章

c语言-求教C语言判断素数程序算法,为何j<=sqrt((double)i )??

问题描述 求教C语言判断素数程序算法,为何j<=sqrt((double)i )?? #include #include void fun(int a, int b, int *c) { int i,j,d,y; for (i=3;i<=a/2;i=i+2) { /************found**************/ y=1; for (j=2;j<=sqrt((double)i );j++)//??为何j<=sqrt((double)i )?? if (i%j==0)

算法 c c++-求最大公约数和判断素数的最优算法

问题描述 求最大公约数和判断素数的最优算法 要求时间限制在1s之内的,测试数据最大到10的5次方,算法思想或者程序代码(C++或c) 解决方案 判断素数只需要把除数从2变到n的平方根就行了,最大公约数也就一样了

判断素数的时间复杂度最小的算法

问题描述 判断素数的时间复杂度最小的算法 在10的7次方内的数判断是否素数,什么算法时间复杂度最小?求详解..希望各位大神说的浅显一点,本人菜鸟~ 解决方案 算法时间复杂度算法时间复杂度计算如何计算算法的时间复杂度 解决方案二: http://bbs.csdn.net/topics/290068251

判断素数

问题描述 高手帮忙请问给个最快判断一个大数是否为素数的算法谢谢 解决方案 解决方案二:费马小定理?解决方案三:问算法还是API?算法,搜索primesieve,这个图文并茂API的话,使用BigInteger的isProbablePrime(centainty)比如System.out.println(BigInteger.valueOf(1233).isProbablePrime(100));参数代表判断的精确度解决方案四:补充一下,利用埃拉托斯特尼筛法就是去判断n能不能被从2到sqrt(n)

C++第11周项目3(1)——判断素数

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目3- 有趣的数字]先阅读例题,体会处理数字的一般方法,然后自行选题进行解决,掌握这种类型程序设计的一般方法. 任务:解决下面的问题(选做一道即算完成任务) (1)输入一个正整数,判断其是否为一个素数.(注:判断素数还有不少优秀的高效率算法,本文只采用了理解上最简单的方法,没有引导读者掌握那些算法,实在罪过,请读者自行研究求素数算法.) #include<iostre

Python实现求最大公约数及判断素数的方法

  本文实例讲述了Python实现求最大公约数及判断素数的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 #!/usr/bin/env python def showMaxFactor(num): count = num / 2 while count > 1: if num % count == 0: print 'largest factor of %d is %d' % (num, count) break #break跳出时会跳出

冗余检测-无线传感网络节点冗余判断,SITE算法

问题描述 无线传感网络节点冗余判断,SITE算法 求无线传感器网络节点冗余检测的算法,SITE算法中节点的圆心角并集如何求啊 ? 会的私密 ,有报酬,算法用matlab实现

C#入门经典第十一章 求素数的算法

问题描述 感觉被我注释掉的算法很复杂~usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceCh11Ex03{publicclassPrimes{privatelongmin;privatelongmax;///publicPrimes():this(2,100)///{///}publicPrimes(longminmum,lo

素数最短距离算法

#include <cstdio> #include <cstring> #include <cmath> using namespace std; #define MAX_LENGTH 50000001 bool prime[MAX_LENGTH]; void CreatePrimeTable() { int i, j; memset(prime, true, sizeof(prime)); // 初始化全为1 prime[0] = prime[1] = false;