//输出100-200中的素数
#include <stdio.h>
#include <math.h>//sqrt()函数需要的头文件
int main()//输出100-200中的素数
{
for(int i = 100;i <= 200;i++) //遍历100-200中的数,i为需要判断的数
{
for(int j = 2;j <= sqrt(i);j++)//判断是否满足素数条件
{
if(i % j == 0) //当i对j求余等于0时,j为i的因数
{
break; //不是素数,跳出本次循环
}
else if(j == sqrt(i)) //对 2到开方i 进行判断均没有因数,是素数
{ //sqrt()得到的数为浮点数
printf("%d\t",i);
}
}
}
return 0;
}
正常编译代码显示未定义,需要-lm链接gcc编辑器数据库
运行没有输出
原因:sqrt()得到的数是浮点数,需要强制转换类型
正确代码:
#include <stdio.h>
#include <math.h>//sqrt()函数需要的头文件
int main()//输出100-200中的素数
{
for(int i = 100;i <= 200;i++) //遍历100-200中的数,i为需要判断的数
{
for(int j = 2;j <= sqrt(i);j++)//判断是否满足素数条件
{
if(i % j == 0) //当i对j求余等于0时,j为i的因数
{
break; //不是素数,跳出本次循环
}
else if(j == (int)sqrt(i)) //对 2到开方i 进行判断均没有因数,是素数
{ //sqrt()得到的数为浮点数
printf("%d\t",i);
}
}
}
return 0;
}