注册 登录
编程论坛 C语言论坛

输出200以内最后n个素数

yym33 发布于 2020-04-28 18:25, 2002 次点击
2是第一个素数,3是第二个素数,5是第三个素数,以此类推
输出200以内最后n个素数,n由键盘输入,素数输出时用逗号间隔
8 回复
#2
yym332020-04-28 19:07
呜呜,有没有大佬会做呀~
#3
lin51616782020-04-28 19:24
明显是一个筛法练习
#4
yym332020-04-28 19:25
回复 3楼 lin5161678
怎么说呢?
#5
纯蓝之刃2020-04-28 19:45
程序代码:
#include<stdio.h>

int main()
{
    int i,j,n;
    scanf("%d",&n);
    for(j=200; j>1&&n>0; j--)
    {
        for(i=2; i<j; i++)
        {
            if(j%i==0)
                break;
        }
        if(i==j)
        {
            n--;
            printf("%d,",j);
        }
    }
    return 0;
}
#6
吕孟伟2020-04-28 19:59
回复 5楼 纯蓝之刃
哥,有什么办法能不输出最后的一个逗号呢?
#7
深秋20152020-04-28 20:06
回复 6楼 吕孟伟
加个判断解君愁
程序代码:
#include<stdio.h>

int main()
{
    int i,j,n;
    scanf("%d",&n);
    for(j=200; j>1&&n>0; j--)
    {
        for(i=2; i<j; i++)
        {
            if(j%i==0)
                break;
        }
        if(i==j)
        {
            n--;
            if(n==0){  // 判断是不是最后一个
                printf("%d",j);
            }else{
                printf("%d,",j);
            }
        }
    }
    return 0;
}

#8
纯蓝之刃2020-04-28 20:06
程序代码:
#include<stdio.h>

int main()
{
    int i,j,n;
    scanf("%d",&n);
    for(j=200; j>1; j--)
    {
        for(i=2; i<j; i++)
        {
            if(j%i==0)
                break;
        }
        if(i==j)
        {
            n--;
            if(n==0)
            {
                printf("%d",j);
                break;
            }
            else
                printf("%d,",j);
        }
    }
    return 0;
}
#9
吕孟伟2020-04-28 21:26
回复 7楼 深秋2015
好的,学到了。
1