当前位置:首页 » 操作系统 » 素数算法

素数算法

发布时间: 2022-01-10 01:46:55

⑴ 判断一个数是否为素数的算法

找质数的方法:写出这个数的因数。再判断这个数是质数还是合数。
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只能写一个。)

⑵ C++求素数的算法

#include<iostream.h>
void main()
{
int i,j;
cout<<"输出100以内的素数"<<endl;
cout<<"100内的素数为"<<endl;
for(i=1;i<=100;i++)
{for(j=2;j<i;j++)
{if(i%j==0)
break; }
if(i==j)
cout<<" "<<i;}
}
素数的范围通过修改100就行了

⑶ 判断一个整数是不是素数的算法

建立一个素数表(一般不大于此整数的算术平方根即可)进行试除,或者利用一些常见素数性质,以及被素数整除的性质来判断

⑷ 一个求素数的算法

t从0到cap^2-1
i从0到cap-1
j从0到i
实际上这里cap起的作用仅仅为了使i和j满足:i从0到cap-1,j从0到i
实际上composite为j从2到i-1时整除i的个数
当j=0时,使composite重置为0
当j=i时,开始判断
每次j能整除i,composite则增加1,到时就不会输出i
当2到i-1的j都不整除i,此时i为素数,composite为0,可以将其输出

希望你能看明白
不懂的话
还可以问的
一般晚上十点我都有空

c语言素数的算法

你说的可能是筛法求素数:
它的思路如下:
1,求2-n之间的所有素数
2,创建一个数组a[n+2],其下表为2...n+1
3,数组的功能是记录那些数十素数,其下标表示素数,元素初始化时全为1,表示全部数假设都是素数
4,从2开始往后访问数组的每一个元素,如果这个数十素数就输出,否则往后遍历
5,遍历的同时如果这个数i是素数,则进一步往后将这个数的倍数2*i,3*i,....将这些数都标记为0表示不是素数.
6执行完毕将输出所有素数了

⑹ 生成素数表的算法有哪些

筛选法求素数表,最快的素数表生成算法。
所谓“筛选法”指的是“埃拉托色尼(Eratosthenes)筛法”。他是古希腊的着名数学家。他采取的方法是,在一张纸上写上1到100全部整数,然后逐个判断它们是否是素数,找出一个非素数,就把它挖掉,最后剩下的就是素数。
具体做法如下:
<1> 先将1挖掉(因为1不是素数)。
<2> 用2去除它后面的各个数,把能被2整除的数挖掉,即把2的倍数挖掉。
<3> 用3去除它后面的各数,把3的倍数挖掉。
<4> 分别用4、5…各数作为除数去除这些数以后的各数。这个过程一直进行到在除数后面的数已全被挖掉为止。例如找1~50的素数,要一直进行到除数为47为止(事实上,可以简化,如果需要找1~n范围内素数表,只需进行到除数为n^2(根号n),取其整数即可。例如对1~50,只需进行到将50^2作为除数即可。)
如上算法可表示为:
<1> 挖去1;
<2> 用刚才被挖去的数的下一个数p去除p后面各数,把p的倍数挖掉;
<3> 检查p是否小于n^2的整数部分(如果n=1000, 则检查p<31?),如果是,则返回(2)继续执行,否则就结束;
<4> 纸上剩下的数就是素数。
参考链接:http://blog.chinaunix.net/uid-9078996-id-2010292.html

⑺ 什么是素数算法

应当是素数判定算法,也即判断一个数是不是素数。
常见的算法有:
1,暴力法,用2~sqrt(n)之间的所有整数依次试除n,这种方法时间开销很大。
2,筛法。这种方法空间开销很大。
3,Rabin-Miller算法,这种方法在一定情况下会误判。
4,AKS 算法,多项式时间内判定

⑻ c语言素数的算法

思路如下:
1、求2-n之间的所有素数
2、创建一个数组a[n+2],其下表为2...n+1
3、数组的功能是记录那些数十素数,其下标表示素数,元素初始化时全为1,表示全部数假设都是素数
4、从2开始往后访问数组的每一个元素,如果这个数十素数就输出,否则往后遍历
5、遍历的同时如果这个数i是素数,则进一步往后将这个数的倍数2*i,3*i,....将这些数都标记为0表示不是素数 6、执行完毕将输出所有素数了

⑼ 实现用于计算素数的算法

#include <stdio.h>
void main()
{
int num[10] = {2,3,4,5,6,7,8,9,10,11};
int *temp = num; // 用于临时存放素数
int j=0;

for(int i=0;i<10;i++)
{
if(num[i]%2 != 0 )
{
*temp++ = num[i];// 不是2的倍数,就放入temp中
j++; // 用于记录素数的个数,以便之后的循环使用
}
}
for(int i=0;i<j;i++)
{
printf("%d\n",temp[i]);// 输出所有素数
}

}

⑽ 计算机C语言求素数算法,

这个有很多种

  1. 常用的 判断除以2.,除以。。。。。 这适用于判断具体的某个数组

  2. 剔除法 除以2的时候 把2的倍数全部剔除 以此类推。。。 这适合求多个

  3. 已有查找法,用文件数组保存一些素数,为方便使用直接查找 这个属于取巧类型严格不算算法

  4. 还有其他比较高级一些的算法这个可以具体找找

热点内容
医院上传怀孕 发布:2024-11-16 16:30:42 浏览:898
云存储名称 发布:2024-11-16 16:29:10 浏览:589
佛山压缩机厂 发布:2024-11-16 16:29:01 浏览:888
新乡java培训 发布:2024-11-16 16:28:10 浏览:428
汇编反编译成c 发布:2024-11-16 16:21:12 浏览:108
qt5静态编译体积太大 发布:2024-11-16 16:21:12 浏览:801
膏子药存储 发布:2024-11-16 16:02:34 浏览:682
安卓红包雷神怎么样 发布:2024-11-16 15:53:17 浏览:392
支付密码是对的怎么办 发布:2024-11-16 15:45:20 浏览:176
安卓动态库反编译 发布:2024-11-16 15:23:04 浏览:374