答案错误
查看原帖
答案错误
1164292
asdfghjkltf楼主2024/3/24 10:02

为什么我算出来的答案是947303呢?看半天想不明白。

#include<iostream>
#include<cstring>
#include<string>
using namespace std;
const int N = 3e6;
typedef long long ll;
ll primes[N], cnt = 0;
bool st[N];
int main()
{
	for(ll i = 2; i <= N; i++)
	{
		if(st[i]) continue;
		primes[cnt++] = i; 
		for(ll j = i; j <= N; j += i)
		{
			st[j] = true;
		}
	}
	ll res = 0;
	for(ll i = 0; i < cnt; i++)
	{
		for(ll j = i + 1; j < cnt; j++)
		{
			ll a = primes[i] * primes[i];
			ll b = primes[j] * primes[j];
			if(a * b > 23333333333333) break;
			if(a * b <= 23333333333333 && a * b >= 2333) res++;
		}
	}	
	cout << res;
	return 0;
}
2024/3/24 10:02
加载中...