求助!大侠帮帮忙,设计一个c语言程序,输出100到1000的素数。要求是使用for循环,不用那个〈

求助!大侠帮帮忙,设计一个c语言程序,输出100到1000的素数。要求是使用for循环,不用那个〈math.h〉。

#include <stdio.h>
void main()
{
    int a=100, b=1000, count=0;
    int i;
    int j;
    int hang=0;
printf("100 - 1000 之间素数统计\n");  
    for(i=a; i<=b; i++)
    {
        for(j=2; j<=i; j++)
        {
            if(i==j)
            {
hang++;
    printf("%5d",i);

            if(hang==10)
             {
hang =0;
                 printf("\n");
         }
            }
            if(i%j==0)
                break;
        }
    }
}

 

追问

这道呢?麻烦帮帮忙,不能用return返回值或者除标准函数库之外的函数。

追答

你先结贴,重新提问吧

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-09
s1:i=101
s2:i从101开始循环到997,并判断i是否为素数,是则输出,不是continue
另外,判断i是否为素数的方法:
让 i 与 2 到 i/2-1 取余,一旦为0 那么,就不是素数,若一直到最后都没有为0的情况,那么 他(i)就是一个素数。
唔,不明白的还可以再问~~
第2个回答  2013-10-09
#include <stdio.h>
int prime(int x)
{
int p=1,i;
for(i=2;i<x;i++)
if(x%i==0)
p=0;
return p;
}
void main()
{
int x,n;
for(x=100;x<=1000;x++)
{
if(prime(x))
printf("%d ",x);
}
printf("\n");
}
这是C语言的,不知道你是要c++的还是c的呢?
#include <stdio.h>
int prime(int x)
{
int p=1,i;
for(i=2;i<x;i++)
if(x%i==0)
p=0;
return p;
}
void main()
{
int x,n,sum=0,flag=0;
for(x=1000;x>=100;x--)
{
if(prime(x))
{
printf("%d",x);
flag++;
if(flag==10)
{
printf("=%d\n",sum);
break;
}
else
printf("+");
if(flag<10)
sum+=x;
}
}
}
这个是你第二题的答案,望采纳!!
相似回答