题解 | #牛牛的素数判断#
牛牛的素数判断
https://www.nowcoder.com/practice/81c8387f72824cceb5c955e3dbfd2882
#include <stdio.h>
int main() {
int n = 0,m = 0 , i = 0 , j = 0;
scanf("%d", &n);
while (n) {
scanf("%d", &m);
if(m%2==0||m%3==0){//去掉2或者3的倍数
if(m==2||m==3)//踢出2,3素数
printf("true\n");
else
printf("false\n");//不是2或3的倍数的数直接就不是素数
}
else{
for (i = 3; i <= m; i += 2) {//每次加2输入数的循环一半
if (m % i == 0 && j == 0 && i != m) {//判断有没有因数,如果是不到循环结束
printf("false\n"); //就说明不是素数直接输出,将j加一
j = 1;
}
else {
if (i == m && j != 1) {//上面的条件直到结束都不满足并且j没有变就说明没有因数
printf("true\n");
}
}
}
j=0;//判断完以后将j恢复不妨碍下次判断
}
n--;//通过将n逐次减一,就是要判断的次数
}
return 0;
}
第一次发布博客,请大家多多批评指教

查看25道真题和解析