C语言(判断一个数是否是素数)在线等,急!

来源:百度知道 编辑:UC知道 时间:2024/05/30 19:23:03
这段程序麻烦高手看下问题出在哪为什么老是编译失败?
#include <stdio.h>
#include <math.h>
void main()
{
int m,i;
double n;
printf("请输入要判断的数:\n");
scanf("%d",&m);
n=sqrt(m);
for(i=2,i<n;i++)
if(m%i==0) break;
if(i>n) printf("%d是素数\n",m);
else printf("%d不是素数\n",m);
}

下面的这个程序编译时是成功的,和上面的一样为什么会出现两个不同的结果?
#include <stdio.h>
#include <math.h>
void main()
{
int m,i; /*定义整数变量M,I*/
double n; /*定义浮点变量N,由于n=sqrt(m)这个表达式是开平方,求平方根所以要定义浮义变量N*/
for(m=100;m<=200;m++){ /*设置循环开始和循环终止条件*/
n=sqrt(m); /*开平方,求平方根要用到之前定义的浮点变量n*/
for(i=2;i<n;i++) /*设置循环开始条件和循环终止条件*/
if(m%i==0) break; /*判M%I的结果是否为1,如果为1终止循环并跳出,如果为0继续循环*/
if(i>n) printf("%d是素数\n",m); /*判断前一个循环的终止出口,如果在i<n跳出则输出,否则丢弃*/
}
}

for(i=2,i<n;i++)
这里错了应该为;
for(i=2;i<n;i++)

for(i=2,i<n;i++)
if(m%i==0) break;
if(i>n) printf("%d是素数\n",m);
else printf("%d不是素数\n",m);
循环体掉了{}

我的这个简单啊。
#include<stdio.h>
void main()
{
int a,b;
scanf("%d",&a);
for(b=2;b<=a;b++)
if(a%b==0)break;
if(b>=a)
printf("%d is a prime number\n",a);
else printf("%d is not a prime number\n",a);
}