C语言求解:编写一个函数,判断一个数是不是素数。在主函数中完成输出1000以内的所有素数,每行输出10个

《1》编写一个函数int prime(int n),返回给定整数n是否为素数(若是素数返回1,不是返回0)
《2》编写主函数,利用prime 函数,编写程序输出1000以内的所有素数,每行输出10个。

是这个效果吗?如下:

#include <stdio.h>

#include <stdlib.h>

#include <math.h>


int main()

{

    int i,sq,num=1,j;

    for(i=3;i<=1000;i++){

        sq=sqrt(i);

        for(j=2;j<=sq;j++){

            if(i%j==0)

            break;

        }

        if((sq+1)==j){

        printf("%d  ",i);

        num++;

        }

        if(num==10){

        printf("\n");

        num=1;}

    }

    return 0;

}

追问

怎么每行九个啊 我要的是每行10个

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-05
//===============================求素数==============================
#include<stdio.h>
#include<math.h>
int prime_number(int x);
int main()
{
    int flage,i,m,j=0;
    puts("输入要求的素数终止位置。\n");
    scanf("%d",&m);
    for(i=2;i<m;i++)
    {
        flage=prime_number(i);
        if(flage==1)
        {
            printf("%d、",i);
            j++;
        }
        if(j>=10)
        {
            printf("\n");
            j=0;
        }
    }
}
int prime_number(int x)
{
    int j,k,s;
    s=(int)sqrt(x+1);
    for(j=2;j<=s;j++)
    {
        k=x%j;
        if(k==0)
                return 0;
    }
    if(j==s+1)
    {
        //printf("%d、",x);  //i 为满足要求的素数
        return 1;          
    }
}

第2个回答  2013-05-05
int prime(int n)
{
int i = 0;
int j = (int)sqrt(n)+1;
for(i=2;i<=j;i++)
{
if(n%i==0) return 1;
}
return 0;
}

void main(void)
{
int i = 0;
int j = 0;
for(i = 0;i<1000;i++)
{
if(prime(i))
{
printf("%d",i);
if( (++j)%10 == 0) printf("\n");
}
}
}本回答被网友采纳