解题思路:
        这个有点懂西,不过身为ikun的我只用了两分钟就想到了一个好办法:

        就是先用一个数组把所有需要的质数存储起来,这样我们需要第几个质数,我们就拿出第几个元素即可,我这里是j-1个=_=||

        
注意事项:

        记得点赞加收藏>_<

参考代码:

#include <stdio.h>

int y(int x, int a[], int b);

int main()

{

const int n = 10000;//直接求出10000个质数

int x[10000] = {2};//对数组第一个元素赋值为2

int j = 1,i = 3;

while (j < n)

{

if ( y(i, x, j))

{

x[j++] = i;  //如果 y(i, x, j)返回是1,则i是质数,将其放入数组j,并将j值+1,用来存放下一个质数

}

i++;

}

        scanf("%d",&j);//输入要得到的第j个质数

printf("%d ", x[j-1]);//x[0]才是第一个质数


return 0;

}


int y(int x, int a[], int b)//判断后面的数是否是质数

{

int c = 1;

int z;

for (z=0; z<b; z++)

{

if (x % a[z] == 0)

{

c = 0;

break;

}

}

return c;

}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论