c语言while判断素数

代码越简单越好,做好有注释

#include <stdio.h>
int main()
{
int n,i;
scanf("%d", &n ); //输入一个数
i=2;
while( i<n ) //从2到n检查是否有因数
{
if ( n%i == 0 ) //如果有因数则退出循环
break ;
i++;
}
if ( i>=n ) //如果循环完整了,从2到n无因数,则是素数
printf("%d是素数\n", n );
else
printf("%d不是素数\n", n ); //提前退出循环,i一定小于n
return 0;
}

追问

还有再简单点的么,我这没学break 和return呢

追答#include <stdio.h>
void  main()
{
    int n,i,x=0;
    scanf("%d", &n ); //输入一个数
    i=2;
    while( i<n ) //从2到n检查是否有因数
    {
        if ( n%i == 0 ) //如果有因数则退出循环
            x++ ; //因数个数增加
        i++;
    }
    if ( x==0 ) //如果没有因数,则是素数
        printf("%d是素数\n", n );
    else
        printf("%d不是素数\n", n ); //有因数,则不是
}

追问

多谢,,

追答

不客气,多练习吧

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-22
//没用break ,没用return
#include<stdio.h>
void main()
{
  int i=1,j,flag=0;
  scanf("%d",&j);
  while(i<j/2)
    {
      i++;
      if(j%i==0)
        flag=1;
    }
  if(flag==0)
    printf("素数\n");
  else
    printf("不是素数\n");
  
}