大家帮帮忙看看C语言中的素数问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 13:21:34
输出 101~200之间的全部素数。
#include "stdio.h"
#include "math.h"
void main()
{
int a,i;
for(a=101;a<=200;a++)
for(i=2;i<=sqrt(a);i++)
if(a%i==0) break;
printf("%d",a);
}

这个程序在哪发生了错误呀?

楼上回答的貌似也不对

楼主的程序等价于:

#include "stdio.h"
#include "math.h"
void main()
{
int a,i;
for(a=101;a<=200;a++)
{
for(i=2;i<=sqrt(a);i++)
{
if(a%i==0) break;
}
}
printf("%d",a);
}

只有1次输出,明显不对

可以改成这样:

#include "stdio.h"
#include "math.h"
void main()
{
int a,i,flag;
for(a=101;a<=200;a+=2)
{
flag=1;
for(i=3;i<=sqrt(a);i+=2)
{
if(a%i==0)
{
flag=0;
break;
}
}
if (flag) printf("%d\t",a);
}
}

少了个括号
#include "stdio.h"
#include "math.h"
void main()
{
int a,i;
for(a=101;a<=200;a++)
{
for(i=2;i<=sqrt(a);i++)
if(a%i==0) break;
printf("%d",a);
}
}