编写一个求输出3-1000以内的所有素数的程序

要求:
1)外循环用FOR循环,外循环变量名为"n";
2)把变量的算术平方根取整后的结果,赋给内存变量m;
3)使用内循环用DO循环,循环变量名为“i”;初值为2,终值为m;
4)以循环结束时i的值是否大于m作为判别n是否为素数的条件;
5)每行输出25个素数;
6)每素数按3个字符输出,相邻两个素数间相隔2个空格位置。

#include<stdio.h>
#include<math.h>
int main()
{
int i, n, m, j = 1;
for(n = 3; n < 1000; n++) //外循环
{
m = sqrt(n);//初始化m,i;
i = 2;
do
{
if(n % i == 0) //内循环
break;
i++;
}
while(i <= m);
if(i > m) //判断素数并输出
{

printf("%3d ", n);
if(j % 25 == 0) //第五第六项不能同时满足
printf("\n");
j++;
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-16
y = (int)(((int)(1.2)+3.8)/5.0) = (int)(1+3.8)/5.0 = (int) (4.8/5.0) = 0
(int) d * y = (int) (3.2*0) = (int) (0.0) = 0
所以输出0
注意计算过程中的类型转换
1.2赋给x后的值是1,小于1大于0的值赋给整数y的后值是0
第2个回答  2011-02-16
需要使用什么语言编写呢?