实现一个函数,判断一个数是不是素数。
题解:素数是表示一个数只能被自己和1所整除的正整数,不包括1,0更不是素数,根据他的定义可以判断条件,使用循环来达到多次判断,理解更加深刻即可发现,判断条件可优化为2到根号下X(表示所要判断的数)即可。
代码如下:(C语言运行与VS2013)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int Judge(int num){
int i = 0;
if (num < 1){
printf("输入的数字不正确!\n"); //不符合素数的定义
}
if (num == 1){
printf("这个数不是素数也不是合数!\n"); //1既不是素数也不是合数
}
if (num > 1){ //进入正常的判断
for (i = 2; i <= sqrt(num); i++){
if (num % i == 0){
printf("这个数不是素数!\n");
break;
}
}if (i > sqrt(num)){
printf("这个数是素数!\n");
}
}
return 0;
}
int main(){
int num = 0;
printf("请输入一个正整数:\n");
scanf("%d", &num);
Judge(num);
system("pause");
return 0;
}