1. 判断一个数是否是素数的最简便算法
满足是素数的最低要求是满足小费马定理,即素数定理。
但是满足小费马定理,不一定就是素数。
2. 下面判断n是否为素数的算法,其时间复杂度为多少 急啊!!谢了
int PMe(int n)
{
int i=1;//这个语句花费了常数时间,记为o(1)
int x=(int) sqrt(n);;//这个语句花费了常数时间,记为o(1)
while (++i<=x)
if (n%i==0) break;//这个while 循环最多一共运行x次,所以花费了o(sqrt(n))的运行时间
if (i>x) return 1;
else return 0;);;//这个if...else语句花费了常数时间,记为o(1)
}
所以整个算法花费了o(1)+o(1)+o(sqrt(n))+o(1),所以时间复杂度就是o(sqrt(n))。
至于为什么 o(1)+o(1)+o(sqrt(n))+o(1)=o(sqrt(n)),建议您去看麻省理工学院的公开课《算法导论》的第一大部分:基础。在第三章和第四章,讲的很详细。
3. 判断一个数是否为素数的算法
找质数的方法:写出这个数的因数。再判断这个数是质数还是合数。
1、一个数除了1和本身,不再有别的约数,这样的数叫做质数或者素数。例如:2,3,5,7,11,13,17,19,23,29等等。
2、一个数,除了1和本身,还的别的因数,这样的数叫做合数。例如4、8、8、9等等。例如:2的所有因数是1和2两个,所以2是质数。例如6的所有因数是:1,2,3,6。一共是4个,所以6是合数。
找因12的因数:
1×12=12 2×6=12 3×4=12 所以12的因数有:1,2,3,4,6,12。共6个。
找因数的方法可以把这个数分成两个因数相乘的积。从一开始比较容易找,写的时候最好能从小到大写出来。重复的只能写一个。例如9的因数:1×9=9 3×3=9 9的因数是:1,3,9共3个。(重复的3只能写一个。)
4. 求能判断大素数的算法
一般的算法就行了,你要优化的。
或者直接建立一个素数表
5. 判断一个整数是不是素数的算法
建立一个素数表(一般不大于此整数的算术平方根即可)进行试除,或者利用一些常见素数性质,以及被素数整除的性质来判断
6. 判断素数的算法用流程图表示对一个大于或等于100的正整数判断它是不是一个素
开始
申请工作变量i,b,x
输入x
i赋值2,b赋值1
A:条件判断x%2是否等于0,是b赋值0,跳转到B
i自加1
条件判断i是否小于等于x整除2,是跳转到A
B:条件判断b是否等于1,如果条件成立则输出: x是素数,否则输出: x不是素数
结束
7. 哪个算法是判断一个数是否为素数的最简单算法
Miller_Rabin 算法啊。在n个数值里面随机选择一个数字,如果说这个数字能够整除2到sqrt(n)的话,那这个数就是素数,反之则不是
8. 判断一个正整数是否是素数的常用算法是 A,排序法 B,回溯法 C,递归法 D,穷举法
摘要 您好,判断一个正整数是否是素数的常用算法是D穷举法
9. 什么是素数算法
应当是素数判定算法,也即判断一个数是不是素数。
常见的算法有:
1,暴力法,用2~sqrt(n)之间的所有整数依次试除n,这种方法时间开销很大。
2,筛法。这种方法空间开销很大。
3,Rabin-Miller算法,这种方法在一定情况下会误判。
4,AKS 算法,多项式时间内判定
10. 什么是素数呀,判断是不是素数的算法是什么呀
素数只能被自身或1整除。