0
点赞
收藏
分享

微信扫一扫

实验06for与do~while循环---7-03 输出2到正整数n间的所有素数

编写程序计算并输出2到正整数n之间的所有素数。

输入格式:
输入只有一个正整数n。

输出格式:
2到n之间的所有素数。例如,如果n为100,则应在一行里输出
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
注意:行首和行尾不能有多余的空格

输入样例:
在这里给出一组输入。例如:
20
输出样例:
在这里给出相应的输出。例如:
2 3 5 7 11 13 17 19

自己写的

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int n,i=2,j=2;
    scanf("%d",&n);
    printf("2");
    do
    {
        for(i=2;i<j/i;i++)
        {
            if(j%i==0)
            {
                break;
            }
        }
        if(j%i!=0)
        {
            printf(" %d",j);
        }
        j++;
        n--;
    }while(n>2);
    return 0;
}

老师写的

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n,count=0;
    scanf("%d", &n);
    for (int i = 2; i <= n; i++)
    {
        int flag = 0;
        for (int j = 2; j * j <= i; j++)
        {
            if (i % j == 0)
            {
                flag++;
                break;
            }
        }
        if (flag == 0)
        {
            count++;
            if (count == 1)
            {
                printf("%d", i);
            }
            else
                printf(" %d", i);
        }
    }
    return 0;
}
举报

相关推荐

0 条评论