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

2024-12-29 12:56:06
推荐回答(3个)
回答1:

是这个效果吗?如下:

#include

#include

#include


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;

}

回答2:

//===============================求素数==============================
#include
#include
int prime_number(int x);
int main()
{
    int flage,i,m,j=0;
    puts("输入要求的素数终止位置。\n");
    scanf("%d",&m);
    for(i=2;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;          
    }
}

回答3:

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");
}
}
}