素数的电脑编程(一千以内的素数编程)
好酷屋教程网小编为您收集和整理了素数的电脑编程(一千以内的素数编程)的相关教程:1.一千以内的素数编程素数::103,109,113,131,1372.编程找出10000以内的素数10000以内的共1229个质数。质数又称素数。一个大于1的自然数,除了1和它自身外,不能整除其
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)//这个数若能被小于它的素数整除则以它为下标的元素清0 m[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以内的素数表。
以上就是好酷屋教程网小编为您收集和整理的素数的电脑编程(一千以内的素数编程)相关内容,如果对您有帮助,请帮忙分享这篇文章^_^
本文来源: https://www.haoku5.com/shuma/63aa5e55f5f6dddcce0a691f.html
相关推荐