P12138 寻找质数(洛谷)

思路: 定义两个数i,j,然后定义cnt=0。因为不知道第2025个质数到底是多少则外层的for循环判断语句为空语句,然后在内层for循环上面定义sum的数值为0。i起始值为2,j起始值为2,内层for循环的判断条件为j*j<=i,(用来提高代码的效率防止时间超限,即如果i不是质数,则至少有一个它的因数小于等于它的平方根)内层for循环里面用if判断语句判断是否存在这样的一个因数,有则sum++,再判断sum的值,为0则为质数,cnt++,最后如果cnt为2025则输出i的值即可得到答案

错误总结: 1.注意代码效率,小心时间超限 2.不要重复定义一个i,即不要int i, int i,要赋值就直接int i,i=10 3.注意数值是否会溢出

include <stdio.h>

int main() { long long i, j; long long cnt = 0;

for (i=2; ; i++)//注意代码效率,不要不要运算超时;
{
long long sum = 0;

for (j=2; j*j<=i; j++)
{
	if (i%j == 0)
	{
		sum++;
		break;
	}
}

if (sum == 0)
{
	cnt++;
}

if (2025 == cnt)
{
	printf("%lld", i);
	return 0;
}

}
}

posted @ 2025-07-16 18:43  xinday  阅读(69)  评论(0)    收藏  举报