解题思路:
注意事项:
参考代码:
#include"stdio.h"
#include"math.h" //数学库,为了使用sqrt根号
int main()
{
int th,i=2,n=2,Num=0,control=0;
//分别对应,第几个质数th,被除数i,除数n,当前质数Num,控制退出循环
scanf("%d",&th);
while(1) //第一个大循环,目的控制除数i,内循环结束加1
{
if(control>=th) break; //和输入的第几个th相等,就是已求出需要的数可以结束
while(1) //被除数能从2开始加到被除数i,判断是不是质数
{
if(i%n==0&&i>2) //如果被1和i之间数整除就不是质数,退出内循环
{
n=2; //初始化被除数
break; //退出内循环
}
else if(n<i) n++; //如果还没加到被除数i且没有被整除,除数继续加1
if(n>=sqrt(i)/3*4) //根号i目的是减少循环次数,*3/4是容错。
{ //可以这么理解,例:6=3*2,最大到6的一半
n=2; //初始化被除数
Num=i; //此时已经到最大的乘积情况了,可以肯定是质数,记录
control++; //控制加1,代表求到了一个质数,当值与输入的th相同,退出外循环
break;
}
}
i++; //除数加1
}
printf("%d",Num); //所有循环结束,输出
}
0.0分
2 人评分
母牛的故事 (C语言代码)浏览:1410 |
弟弟的作业 (C++代码)浏览:1342 |
C语言考试练习题_排列 (C语言代码)浏览:767 |
【计算直线的交点数】 (C语言代码)浏览:1501 |
循环入门练习6 (C语言代码)浏览:1058 |
蓝桥杯历届试题-翻硬币 (C++代码)浏览:954 |
买不到的数目 (C语言代码)浏览:3134 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:419 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:456 |
母牛的故事 (C语言代码)浏览:504 |