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

质数算法

发布时间: 2022-02-02 15:02:03

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

#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]);// 输出所有素数
}

}

⑵ 什么是素数呀,判断是不是素数的算法是什么呀

素数只能被自身或1整除。

⑶ 求质数算法,看看哪错了

#!/usr/bin/perl
for($i=2;$i<=10;$i++){
$count=0;
for($j=2;$j<$i;$j++){
if($i%$j==0){
$count+=1;
}
}
#检查应该放到后面,且,比较要用两个等号==
if($count==0){
print"$i ";
}
}

c语言素数的算法

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

⑸ 这个c程序质数算法是什么意思,看不懂。为什么要 j <= (i/j)呢

判断条件 j <= (i/j)即j*j<=i,即2~sqrt(i)内判断是否可整除i,即可判断i是否是质数,剩下的sqrt(i)+1~i-1没有必要再判断,目的无非是少做几次循环判断
你写成j<i也可以,就是多做了若干次无意义的循环判断而已

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

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

⑺ 什么是素数算法

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

⑻ 一个求素数的算法

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,可以将其输出

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

⑼ 求一个任意数的相邻的质数的算法

1、给定任意数n
2、k=n
3、k=k-1
4、k是
质数
吗(判断质数过程)?如果不是则跳回3.如果是则找到比n小的质数,继续
5、k=k+1
6、k是质数吗(判断质数过程)?如果不是则跳回3.如果是则找到比n大的质数。
7、结束
如何判断一个
自然数
是否为质数的过程比较简单,不累述。

⑽ c语言求素数的算法

根据素数的性质,代码设计如下:

设计一:判断n是否能被1~n-1整除,不能整除为素数

#include<stdio.h>

int main()

{

int i, n;

scanf("%d", &n);

for (i = 2; i < n ; i++)

{

if (n%i == 0)

break;

}

if (i < n) printf("This is not a prime.");

else printf("This is a prime.");

return 0;

}

设计二:判断n是否能被2~√n间的整数整除,不能整除为素数

#include<stdio.h>

#include<math.h>

int main()

{

int n,i;

double k;

scanf("%d", &n);

k = sqrt(n);

for (i = 2; i <= k;i++)

{

if (n%i == 0) break;

}

if (i <=k) printf("This is not a prime.");

else printf("This is a prime");

return 0;

}

(10)质数算法扩展阅读:

1.素数的定义是只能被1和他本身整除,1不是素数.因此要判断一个数是否为素数.就要判断它能不能被比他小的所有素数整除,这是一个算法.(写到算法时,我只能写出用它除以比他小的所有数,造成运算速度低下)

2.如果一个质数大于根号n,而n可以除尽它,那么n必然也可以除尽一个更小的质数。由此可以得到一个法2较快的素数判断算法

热点内容
安卓手机236开发者选项在哪里 发布:2024-05-06 04:11:13 浏览:258
sql过滤条件 发布:2024-05-06 04:05:18 浏览:562
ifconfiglinux 发布:2024-05-06 03:47:59 浏览:533
c语言开发集成环境 发布:2024-05-06 03:47:06 浏览:607
脚本uzi比赛视频 发布:2024-05-06 03:46:19 浏览:823
php给文本框赋值 发布:2024-05-06 03:21:24 浏览:26
androidjsonkey 发布:2024-05-06 03:07:31 浏览:732
python主线程子线程 发布:2024-05-06 03:07:20 浏览:764
android系统截屏 发布:2024-05-06 02:57:51 浏览:777
android居左 发布:2024-05-06 02:40:26 浏览:45