解题思路:
这个有点懂西,不过身为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语言考试练习题_排列 (C++代码)浏览:713 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:607 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:609 |
C语言训练-计算一个整数N的阶乘 (C语言代码)浏览:982 |
【绝对值排序】 (C语言代码)浏览:832 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:643 |
字符串问题 (C语言代码)浏览:1634 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:636 |
1128题解(返回值为数组的情况)浏览:571 |
敲七 (C语言代码)浏览:2747 |