CExercise_05_1函数_1.1素数(要对键盘录入的数据做参数校验)
题目:
编写函数实现以下功能:
键盘录入一个正整数,请判断它是否是一个素数,然后控制台输出对应的结果。要对键盘录入的数据做参数校验,素数是一个大于1的自然数,它仅能被1和自身整除。
关键点
分析:
:
代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
/*
键盘录入一个正整数,请判断它是否是一个素数,然后控制台输出对应的结果。
要对键盘录入的数据做参数校验,素数是一个大于1的自然数,它仅能被1和自身整除。
*/
bool is_prime(int num) {
//如果num是1,或者比1小,那它一定不是素数
if (num <= 1) {
return false;
}
//将num从2开始除,一直除到该数的平方根
for (int i = 2;i <= sqrt(num);i++) {
if (num % i == 0) { //取余为0,就是除尽了,就是此时候找到了因数.
//此过程中只要有一个除尽了,那么就不是素数
return false;
}
return true;
}
}
int main(void) {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (is_prime(num)) {
printf("%d是一个素数!\n", num);
}
else {
printf("%d不是一个素数!\n", num);
}
return 0;
}
解决方案总结:
: