求1~300间的全部素数并输出。 输出数据采用“%-5d”的格式间隔,并且每行10个数据。

不会敲这个程序 我们规定只能用c语言里面的知识点 没学其他的 希望有人帮我解答一下,谢谢啦。

参考如下,欢迎采纳:

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

int prime(int x)
{
    int i;
    int flag = 1;
    for (i = 2; i <= sqrt(x); i++)
    {
        if (x % i == 0)
        {
            flag = 0;
            break;
        }
    }
    return flag;
}

int main()
{
    int n, count=0;
    for (n = 2; n <= 300; n++) 
    {
        if (prime(n)) 
        {
            printf("%-5d", n);
            count++;
            if (count % 10 == 0)
                printf("\n");
        }
    }
}

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7617341
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:从键盘输入10个整数,用顺序排序法将10个数由大到小排序后输出。 输入格式:“%d“ 输出格式:“%5d“
  • 除此之外, 这篇博客: C语言的输入输出格式大全,输入输出格式程序实例,关于++自增运算符的应用中的 1. %d格式:用来输出十进制整数,有以下几种用法: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1、%d 按整型数据的实际长度输出。
    2、%md m为指定的输出值的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
    3、%0md 用这种格式时,左端用0来代替空格
    4、%-md m为指定的输出值的宽度。如果数据的位数小于m,则右端补以空格,若大于m,则按实际位数输出
    5、%ld 输出长整型数据。

    输出语句含义输出结果
    printf("%6d\n",k);k的值有4列小于6列,在值的左边补2列空格;如果k的值为12则输出为□□□□12□□1234
    printf("%2d\n",k);k的值有4列大于2列,不补空格原样输出1234
    printf("%06d\n",k);空格用0替代001234
    printf("%.6d\n",k);空格用0替代001234
    printf("%-6d\n",k);右补空格1234□□