解题思路:
这个有点懂西,不过身为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分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复