#include<stdio.h> #include<math.h> int main() { int m,k,i ; scanf("%d",&m); k=sqrt(m); for(int i=2;i<=k;i++) {if(m%i==0) break;} if(i>k) printf("%dyes",m); else printf("%dno",m); return 0; }
时间: 2023-11-20 18:23:26 浏览: 81
#include <stdio.h>
4星 · 用户满意度95%
这段代码是用来判断一个数是否为质数的。用户输入一个整数m,程序会计算m的平方根k,然后从2开始遍历到k,如果m能被i整除,则说明m不是质数,程序会直接跳出循环。如果遍历到k都没有找到m的因子,则说明m是质数,程序会输出"yes",否则输出"no"。
需要注意的是,这段代码中有几个问题需要修正:
1. 循环内部的变量i应该在循环外部先声明,否则在判断质数时会出错。
2. 在遍历到k之后,i的值应该是等于k的,而不是k+1。
3. 输出的字符串应该加上换行符,否则输出结果会与后续的输入提示信息连在一起。
修正后的代码如下:
```
#include <stdio.h>
#include <math.h>
int main() {
int m, k, i;
scanf("%d", &m);
k = sqrt(m);
for (i = 2; i <= k; i++) {
if (m % i == 0) {
break;
}
}
if (i > k) {
printf("%d yes\n", m);
} else {
printf("%d no\n", m);
}
return 0;
}
```
阅读全文