判断一个数字是否为质数(素数)!
---------首先要知道质数的定义。
质数:只能被1或者自身整除的数字,0和1都不是质数。
思路:利用循环进行多次判断,具体我在下面的代码中都有解释。大家可以看看,有别的想法也可以提出来一起讨论。
#include<stdio.h>
int main(){
int num,i,count=0;
printf("请输入一个整数:");
scanf("%d",&num);
if(num==0){
printf("%d不是一个质数!",num);
}
for(i=2;i<=num/2;i++){
if(num%i==0){
count++;
break;
}
}
if(num!=1 && count==0){
printf("%d是一个质数!\n",num);
}else{
printf("%d不是一个质数!\n",num);
}
return 0;
}
我这个代码是在Linux下运行的,如果要在C-Free5运行的话输出会有乱码。将输入和输出的中文改成英文即可。代码如下:
#include<stdio.h>
int main(){
int num,i,count=0;//定义变量并且赋值 ,count记录这些数字有没有能够整除num的
printf("Enter a number:");
scanf("%d",&num);//读入数据
if(num==0){
printf("%d不是一个质数!",num);
}//0不是质数,所以判断输入的数字是否为0
for(i=2;i<=num/2;i++){//循环,因为1不是质数,所以i从2开始循环,i要小于num/2
if(num%i==0){//判断num能否被整除
count++;//若可以,加1
break;//直接跳出循环,已经找到一个,没有必要再继续循环了
}
}
if(num!=1 && count==0){//判断是否满足质数的条件
printf("%d is a zhishu!\n",num);
}else{
printf("%d isn't a zhishu!\n",num);
}
return 0;
}