判断一个数字是否为质数(素数)!
---------首先要知道质数的定义。
质数:只能被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;}