C语言程序 输出1000以内的所有质数,每5个换一行

如题所述

可以参考下面的代码:

#include <stdio.h>

#include <math.h>

int is_prime(int n)

{

int i;

for(i = 2; i <= sqrt(n); i ++)

if(n%i == 0) return 0;

return 1;

}

int main()

{

int i,n=0;

for(i=2; i < 1000; i ++)

{

if(is_prime(i))

{

printf("%d ",i);

n++;

if(n%5==0)printf("\n");

}

}

}

扩展资料:

C语言参考函数:

double pow(double x,double y) 返回x^y的值

double pow10(int p) 返回10^p的值

double sqrt(double x) 返回+√x的值

C语言isupper()函数:判断一个字符是否是大写字母

C语言isspace()函数:判断一个字符是否是空白符

C语言isprint()函数:判断一个字符是否是可打印字符

参考资料来源:百度百科-C语言函数

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-15

1 根据质数定义,书写判断质数的函数。

2 对2到1000遍历,如果是质数,则输出。

3 记录输出的质数个数,每五个换行一次。


代码:

#include <stdio.h>
#include <math.h>

int is_prime(int n)
{
int i;
for(i = 2; i <= sqrt(n); i ++)
if(n%i == 0) return 0;
return 1;
}
int main()
{
int i,n=0;
for(i=2; i < 1000; i ++)
{
    if(is_prime(i))
    {
        printf("%d ",i);
        n++;
        if(n%5==0)printf("\n");
    }
}
}

第2个回答  推荐于2017-09-04
#include <stdio.h>

int isprime(int n)
{
if (n <= 1) return 0;
if (n == 2) return 1;
for (int i = 2; i <= n / 2; i++)
{
if (n % i == 0) return 0;
}

return 1;
}
int main()
{
int count = 0;
for (int i = 2; i <= 1000; i++)
{
if (isprime(i))
{
printf("%3d ", i);
count++;
}

if (count == 5) // 每五个换行
{
printf("\n");
count = 0;
}
}
return 0;
}追问

如果输出素数呢?该怎么写?

追答

素数就是质数啊,这输出的就是1000以内的素数啊

本回答被提问者采纳
第3个回答  2012-11-29
#include <stdio.h>
int main(void)
{
int a,b,flag=0,sum=0;
printf("1~1000间的素数:\n");
for(a=2;a<=1000;a++)
{
b=2;
while (b<a)
{
if(0==a%b)
{
flag=1;
break;
}
b++;
}
if (flag)
{
flag=0;
continue;
}
printf("%d\t",a);
sum++;
if (sum==5)
{
sum=0;
printf("\n");
}
}
printf("\n");
return 0;
}追问

如果输出素数呢?该怎么写?

追答

质数又称为素数

第4个回答  2012-11-29
骚年 这个是课后习题吧
相似回答