欢迎来到天天文库
浏览记录
ID:45973918
大小:248.16 KB
页数:9页
时间:2019-11-19
《判断一个数是素数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、如何判断一个数是素数?C/C++基本思想判断一个整数m是否为素数,只需用2~m-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。其实可以简化,m不必被2~m-1之间的每一个整数去除,只需被2~之间的每个数去除就可以了。例如判别17是否为素数,只需使2~4之间的每一个整数去除。为什么可以做如此简化呢?因为如果m能被2~m-1之间任意整数整除,如果这个数大于,那这个数必定对应的还有一个比小的因子(以16为例,2、8是它的因子,8大于4,2小于4)。源程序#include#include#defineTRUE
2、1#defineFALSE0intmain(){intn;charisPrime(intn);//声明函数isPrimeprintf("Pleaseenteranumber:");scanf("%d",&n);if(isPrime(n)==TRUE){printf("TRUE");}else{printf("FALSE");}return0;}charisPrime(intn){inti;charc=TRUE;if(n==2){c=TRUE;}elseif(n>2){if(n%2==0){c=FALSE;}运行结果else{for(i=3
3、;i<=sqrt(n);i+=2){if(n%i==0){c=FALSE;break;}}}}else{c=FALSE;}returnc;}方法二:boolisprime(inta){for(inti=2;i<=sqrt(a);i++)if(a%i==0)returnfalse;returntrue;}voidmain(){inta;printf("请输入:");scanf("%d",&a);if(isprime(a))printf("是素数");elseprintf("不是素数");}方法三:voidmain(){inti,k,m;scan
4、f("%d",&i);k=sqrt(i);//判别i是否为素数,只需使2~根号i之间的每一个整数去除for(m=2;m<=k;m++)if(i%m==0)break;if(m>k)printf("%d是素数",i);elseprintf("%d不是素数",i);}输出1~100之间的素数intmain(){inti,n,t=0;for(n=1;n<=100;n++){for(i=2;i<=n;i++){if(n%i==0)break;}if(n==i){printf("%-8d",n);//数据占8个宽度,并左对齐;t++;if(t%5==0)//每
5、输出5个素数后换行;printf("");//字符输出函数;}}printf("");printf("1-100内共有以上%d个质数(素数)。",t);return0;}
此文档下载收益归作者所有