c语言的质数判断1:
首先要判断一个数是不是质数,要看它除了1和它本身以外,在区间[2,m-1]的范围内,是否还有一个以上(包括一个)能让它整除的数。
思路:
在区间[2,m-1]的表示方法:
~~~c
if(x>=2&&x<=m-1)或者for(x=2;x<m;x++)
~~~
在这里我使用第二个代码表示,除此之外还要考虑两个特殊的数:1和2。
我们需要的效果是能否整除那就需要用到%符号(同时注意%两边都必须是int)
我们要做的就是在这个区间内找到这样一个数即:
for(x=2;x<m;x++)
{
m%x==0;
break;
}
当这个数出现时就已经可以停止此次循环了。
接下来我们再来进行判断这个数是否在这个区间内,如果在就说明输入的数字除了1和自己本身外,还有一个能在区间[2,m-1]让它整除的数所以该数不是质数,反之则说明该数是质数。
注:还可以在这些基础上加上一些提示语和一些输入错误的处理方法
结合以上思路最终得到的代码为:
#include <stdio.h>
int main()
{
int x,y;
printf("请输入一个正整数:");
scanf("%d",&x);
while(x<0)
{
x=-x;
}
if(x==1)
{
printf("该数不是质数。");
}
if(x==2)
{
printf("该数是质数。");
}
if(x>2)
{
for(y=2;y<x;y++)
{
if(x%y==0)
{
break;
}
}
if(y>=2&&y<x)
{
printf("该数不是质数。");
}
else
{
printf("该数是质数。");
}
}
return 0;
}