素数的电脑编程|一千以内的素数编程

素数的电脑编程|一千以内的素数编程

1. 一千以内的素数编程

素数::103,109,113,131,137

2. 编程找出10000以内的素数

10000以内的共1229个质数。

质数又称素数。一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数;否则称为合数。

1、如果 为合数,因为任何一个合数都可以分解为几个素数的积。

而N和N+1的最大公约数是1,所以不可能被p1,p2,……,pn整除,所以该合数分解得到的素因数肯定不在假设的素数集合中。因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数。所以原先的假设不成立。也就是说,素数有无穷多个。

3. 编程实现求1-1000中所有素数

可以编写一个素数考察函数,在主函数中调用该函数对1000以内的整数穷举考察求解,也可以在主函数中直接对1000以内的整数穷举考察求解。这里提供一个用筛选法求解的代码,思路是声明一个大于等于1000个元素的char型(int型当然也可以,这里只是为了减少空间开销)数组并全部初始化为1,对下标不是素数的元素清0,最后依次输出不为0元素的下标便是题解。为提高操作效率,用2~33间(33^2>1000了,所以考察已充分了)的素数去除大于这个素数而小于等于1000的不为0的数,能整除的便将这个下标的元素清0。当用小于33的最大素数考察完毕后,依次输出数组中不为0的元素下标即可。代码如下:

#include "stdio.h"int main(int argc,char *argv[]){int i,j;char m[1001];//声明char型数组作为筛选对象for(m[0]=m[1]=0,i=2;i<=1000;m[i++]=1);//m[0]和m[1]赋0,其余赋1备选i=2;//考察次数2~33,用期间的素数去除大于i且小于等于1000间不为0的数while((j=i)<33){while(!m[++j]);//取j为大于i的第一个不为0的数为起始考察对象while(j<=1000){if(j%i==0)//这个数若能被小于它的素数整除则以它为下标的元素清0m[j]=0;while(!m[++j]);//下一个不为0的数为考察对象}while(!m[++i]);//2~33间的下一个素数}for(j=i=0;i<=1000;i++)//以下是输出if(m[i])//不为0的数组元素的下标便是素数printf(++j%20 ? "%4d" : "%4d\n",i);//每行输出20个if(j%20)printf("\n");return 0;}

运行结果如下:

4. 一到一千的素数程序

1到100可逆素数:2 3 5 7 11 13 17 31 37 71 73 79 97

可逆素数是指:一个素数将其各位数字的顺序倒过来构成的反序数也是素数。

算法思想:最简单的方法就是从1000到9999逐个验证,如果它的反序数也是一个素数,则这个数是一个可逆素数。在验证的过程中可以利用整除和求余分解出个位,十位,百位,千位,则易得它的反序数,进而可验证反序数是否是素数。

5. 编程输出一千以内所有的素数

定义一个求判断素数的函数,调用此函数对1~100中2和大于2的奇数进行判断,是素数的输出,举例代码如下:

#include "stdio.h"int prime(int n){//判断n是否为素数int i;if(n>2 && !(n&1) || n<2)return 0;for(i=3;i*i<=n;i+=2)if(!(n%i))return 0;return 1;}int main(int argc,char *argv[]){int n;for(n=2;n<100;n += n!=2 ? 2 : 1)if(prime(n))printf("%3d",n);printf("\n");return 0;}

6. 编程求解1000以内所有素数用什么算法

main(){ int t,i,j,k=0; for(int t= 500; t < 1000; t++) { for(i = 2; i < t/2; i++) { if(t % i == 0) break; } if(i == t/2 + 1) { if(k%6 == 0) printf("\n")

; else printf("%d ",t); k++; } } }

7. 一千以内的素数编程实例

一、规律记忆法

首先记住2和3,而2和3两个质数的乘积为6。1000以内的质数,一般都在6的倍数前、后的位置上。如5、7、11、13、19、23、29、31、37、41、43……只有25、35、49、55、65、77、85、91、95这几个6的倍数前后位置上的数不是质数,而这几个数都是5或7的倍数。由此可知:100以内6的倍数前、后位置上的两个数,只要不是5或7的倍数,就一定是质数。根据这个特点可以记住1000以内的质数。

二、分类记忆法

我们可以把1000以内的质数分为五类记忆。

第一类:20以内的质数,共8个:2、3、5、7、11、13、17、19。

第二类:个位数字是3或9,十位数字相差3的质数,共6个:23、29、53、59、83、89。

第三类:个位数字是1或7,十位数字相差3的质数,共4个:31、37、61、67。

第四类:个位数字是1、3或7,十位数字相差3的质数,共5个:41、43、47、71、73。

第五类:还有2个持数是79和97

8. 编程一百以内的素数

输出100以内所有素数的程序如下:

#include <stdio.h>

int main(void)

{

int i,j,k;

printf("%d\n",2);

for(i=1;i<=100;i+=2)

{

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

if(i%j==0) break;

if(i==j)

printf("%d\n",i);

}

return 0;

}

9. 编程1-100所有素数

素数也就是质数,质数就是指那些除了1和它本身没有其他因数的数。

在小学五年级,最好能把一百以内的质数,或者说素数记下来。下面就来列举一下一百以内的素数:2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97。 

要注意1既不是质数也不是合数!

10. 编程100到1000之间有多少个素数

#include #include int fun(int n) //子函数判断是否为素数{ if(n==1) return 1; for(int i=2;i<=sqrt(n);i++) { if(n%i==0) return 0; } return 1; } void main() { int count=0;printf("100-300的素数有:\n"); for(int i=100;i<=300;i++) { if(fun(i)) { count++;printf("i=%d ",i); if(count%5==0)//五个一行输出素数printf("\n");}} }

11. 编写一个程序求100以内的素数

操作步骤:

1、打开Excel软件;

2、依次输入以下数据:2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97;3、现在就制作好了100以内的素数表。

推荐阅读

    3d解组快捷键|3d分解快捷键

    3d解组快捷键|3d分解快捷键,,3d分解快捷键选着你要拆的整个物体~转化为可编辑的多边形~选着面得级别~选着你要拆开的的那些面~~最后在修改

    车载电脑系统编程|车载电脑操作系统

    车载电脑系统编程|车载电脑操作系统,,1. 车载电脑操作系统白名单的概念与“黑名单”相对应。白名单是设置能通过的用户,白名单以外的用户都

    台式电脑编程|台式电脑编程方便吗

    台式电脑编程|台式电脑编程方便吗,,台式电脑编程方便吗学习电脑锣cnc编程大约分为以下阶段:第一阶段:学徒期①熟悉机床的操作,保养,以及检具、

    zb编程快捷键|zb操作快捷键

    zb编程快捷键|zb操作快捷键,,1. zb操作快捷键取消上一步的编辑操作指令,即撤销。 返回上一步的快捷键是Ctrl+Z。2. zb设快捷键天正建筑命

    catia分解快捷键|catia的快捷键

    catia分解快捷键|catia的快捷键,,1. catia的快捷键1、在用CATIA画图之前,先得设置一些基本选项,才能有助于后面的设计。打开软件后,选择“工

    c语言运行快捷键|c语言编程快捷键

    c语言运行快捷键|c语言编程快捷键,,c语言编程快捷键格式化的快捷键是 alt + f8 只针对选择的部分.运行c语言快捷键C语言作为一门起源比较

    a6驻车制动电脑编程|奥迪A6驻车制动

    a6驻车制动电脑编程|奥迪A6驻车制动,,1. 奥迪A6驻车制动使用方法:在等红绿灯或需要短暂停车时,按下车上自动驻车按钮就可以启动,此时可以不需