c语言:输入一个大于3的整数并判断其是否为素数

2025年03月22日 20:33
有3个网友回答
网友(1):

你的代码逻辑是错误的:素数是除1和自身外没有因数的正整数,你只 if(n%i!=0) { printf("%d是素数\n",n); } 这样一次判断就认为是素数了?比如8,8%3不等于0,但谁都知道8不是素数!谭浩强的代码显然是对的——for(i=2;i=n了才退出,就明没有找到能整除的因子,n就是素数。那么怎么知道这两种情况呢,下面if(i=n了,这不就说明没找到能整除的因子,n是素数!

网友(2):

首先回答“有些地方看不懂,条件里已经有了i你看他的for循环里面,是不是i是从2循环到n-1,如果中间有某个数能被n整除就跳出,此时i肯定是某个在2~n-1中的数,所以这时候必有i然后回答你的程序的问题。
首先,for循环里的语句要用{ }括起来,然后你的for循环里面做的事情是对i从2~n-1,都判断i能不能被n整除,不能则输出语句"n是素数"能则输出"n不是素数",事实上,如果你用{}括起来,程序会输出n-1-2+1=n-2次的输出语句"n是素数"或者"n不是素数",而不能得到你想要的结果。
有问题再找我讨论哈

网友(3):

# include
int main ()
{ int n,i;
scanf("%d",&n);
for(i=2;i if(n%i==0)
{ break; }
if(ielse { printf("%d不是素数\n",n); } //说明循环正常退出,没有break
return 0;
}