判断一个数是素数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
去除。为什m 么可以做如此简化呢?因为如果m能被 m2~m-1之间任意整数整除,如果这个数大于 ,那
这个数必定对应的还有一个比 小的因子(以16为例 ,2、8是它的因子,8大于4,2小于4)。
源程序
• #include<stdio.h>
• #include<math.h>
• #define TRUE 1
•{

for(int i=2;i<=sqrt(a%i==0) return false;

return true;
•}
• void main(){
• int a;
• printf("请输入:");

scanf("%d",&a);

if(isprime(a))

printf("是素数\n");

else

printf("不是素数\n");

•}
方法三:
• void main(){
• int i,k,m;

scanf("%d",&i);
• k=sqrt(i); //判别i是否为素数,只需使2~根号i之间的每 一个整数去除
• for(m=2;m<=k;m++)

if(i%m==0)break;
质数(素数)。\n", t);
7
return 0;
8
}
• #define FALSE 0
• int main()
•{

int n;

char isPrime(int n);
//声明函数isPrime

printf("Please enter a number:");

scanf("%d\n",&n);

if(isPrime(n)==TRUE){

printf("TRUE\n");
运行结果
• • • • • • • • • • • • • • • • • •}
else
} else { } return c;
{ for(i=3;i<=sqrt(n);i+=2) { if(n%i==0) { c=FALSE; break; } }
} c=FALSE;
方法二:
• bool isprime(int a)
break;

}

if(n==i)

{
• 左对齐;
printf("%-8d", n);//数据占8个宽度,并

t++;

1
if (t%5==0) //每输出5个素 数后换行;
2
printf ("\n"); //字符输出函数;
3
}
4
}
5
printf("\n");
6
printf("1-100内共有以上%d个

}
else } char isPrime(int n) char c=TRUE; else if(n>2)
{ return 0; { if(n==2){ {
p r i n t f ( " FA L S E \ n" ) ; } int i; c=TRUE;} if(n%2==0) { c = FA L S E ; }
如何判断一个数是 素数?
C/C++
基本思想
判断一个整数m是否为素数,只需用2~m-1之间的 每一个整数去除,如果都不能被整除,那么m就是一 个素数。
m
其实可以简化,m不必被2~m-1之间的每一个整数 去除,只需被2~ 之间的每个数去除就可以了。例 如判别17是否为素数,只需使2~4之间的每一个整数

if(m>k)

printf("%d是素数 ",i);

else printf("%d不是素数",i);
•}
输出1~100之 间的素数
• int main()
•{

int i,n,t=0;

for(n=1;n<=100;n++)

{

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

{

if(n%i==0)

相关文档
最新文档