小白求大佬帮忙看看
int i,count;printf("请输入一个整数:");
scanf("%d",&i);
if (i>100||i<0)
{
printf("超出范围");
}
else
{
for (int j = 2; j < i; j++)
{
if(i%j == 0){
count = 1;
}else{
count = 0;
}
}
if (count == 1){
printf("%d不是素数",i);
}else{
printf("%d是素数",i);
}
}
return 0;
大佬看看这为什么不对呢,输进去33它也显示是素数 明白了,应该在count=1后加个break,跳出循环就不会再判断了 #include <stdio.h>
int main(void)
{
int i , j ;
printf("请输入一个整数:") ;
scanf("%d" , & i) ;
if (i > 100 || i < 0) {
printf("超出范围\n") ;
} else {
for(j = 2 ; j < i ; j ++) {
if(i % j == 0) break ;
}
if (j < i) { // 如果 j < i 代表是循环是 break 结束
printf("%d不是素数\n" , i) ;
} else { // 否则,属于正常结束
printf("%d是素数\n" , i) ;
}
}
}
编译、运行实况:
D:\\C>g++ -o x x.c
D:\\C>x
请输入一个整数:13
13是素数
D:\\C>x
请输入一个整数:33
33不是素数
D:\\C> jackz007 发表于 2022-9-16 11:09
编译、运行实况:
感谢感谢{:5_102:}
页:
[1]