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

求助:编程找出前1000个素数存放到数组中,然后输入一个整数N,输出第N个素数的值。

闻人醉 发布于 2022-12-03 20:42, 1503 次点击
输入格式:
输入有多组数据,为若干个空格分隔的整数。

输出格式:
对于输入数据中每个n,输出第n个素数的值,多个输出之间以逗号分隔。
输入样例:
1 2 3 4 5 4 3
输出样例:
2,3,5,7,11,7,5

//大佬们救命啊,我真的弄不出来

[此贴子已经被作者于2022-12-3 23:08编辑过]

2 回复
#2
apull2022-12-04 08:50
程序代码:

int a(int n)
{
    if (n <= 1)
        return 0;
    for (int i = 2; i * i <= n; i++)
        if (n % i == 0)
            return 0;

    return 1;
}
int main()
{
    int num[1001], cnt = 1, i = 1;
    int in[1000];
    while (cnt < 1000)
    {
        if (a(i))
            num[cnt++] = i;

        i++;
    }
    cnt = 0;
    while (~scanf("%d", &i))
    {
        in[cnt++] = i;
    }
    for (i = 0; i < cnt; i++)
        printf("%d%c", num[in[i]], (i == cnt - 1) ? '\0' : ',');

    return 0;
}
#3
我好困2022-12-17 21:40
回复 2楼 apull
有个测试集过不了啊,还有就是这应该是大一的题目,大佬们就用一维数组不要加函数啦
1