判断素数
- 算法思想
1、素数即部可被除本身和1以为其它数整除;
2、因为有大小限制所以考虑用for循环实现;
3、条件表达式的运用注意。 - 代码如下:
//判断素数的程序
#include<stdio.h>
int main()
{
int a;
int i;
int isprime=1; //判断变量
printf("请输入一个整数:");
scanf("%d",&a);
for(i=2;i<a;i++){
if(a%i==0){ //当余数不为0时,不运行条件体内语句
isprime=0;
break; //能被整除时直接跳出循环
}
}
if(isprime==1) //break跳出循环时isprime为0,执行else语句。
printf("%d是素数",a);
else
printf("%d不是素数",a);
return 0;
输出结果:
请输入一个整数:21
21不是素数
--------------------------------
Process exited after 3.564 seconds with return value 0
请按任意键继续.
代码分析:
if(a%i==0) 同等于 if(!(a%i));
if(isprime==1) 中isprime的值不等于1;执行if后语句。
这里尤其要注意条件表达式中,非0(包括负数)即为正,0为负。
- 代码如下:
//判断素数的程序
#include<stdio.h>
int main()
{
int a;
int i;
// int isprime=1; //a是素数
printf("请输入一个整数:");
scanf("%d",&a);
for(i=2;i<a;i++){
if(!(a%i)){
// isprime=0;
break;
}
}
// if(isprime==1)
if (i<a)
printf("%d不是素数",a);
else
printf("%d是素数",a);
return 0;
}
代码输出:
请输入一个整数:113
113是素数
--------------------------------
Process exited after 4.935 seconds with return value 0
请按任意键继续. . .
代码分析:
这里取消了素数判定开关,改为检测循环计数i和输入值的大小,如果为素数时,只有当循环计数累加至a时才会跳出循环,执行下一条条件语句中的else后语句。