可达鸭学习平台题库——思维题库第72题哥德巴赫猜想

哥德巴赫猜想

时间限制:1秒        内存限制:128M

题目描述

哥德巴赫猜想指的是:大于2的偶数,每一个偶数都能被表示为两个质数的和。请问不超过n的偶数中,有多少个数符合哥德巴赫猜想?

输入描述

一个整数n(3≤n≤10​^18​​)

输出描述

输出一个整数,如题。

样例输入

10

样例输出

4

提示

4、6、8、10 都符合哥德巴赫猜想。

我们列举一下的式子

4=2+2

6=3+3

8=3+5

10=5+5

12=5+7

14=7+7

16=5+11

18=5+13

20=7+13

不难看出,所有偶数只有0和2不符合哥德巴赫猜想,所有只需要输出偶数数量-1

偶数数量n/2

所以,我们只需要输出(n/2)-1

而题目描述中n<=1e18

所以要改变一下式子

(n*1ll/2)*1ll-1;

所以根据上述描述中,代码为

#include 
using namespace std;
int main() 
{
	long long n;
	cin >> n;
	printf ("%lld",( n * 1ll / 2 ) * 1ll - 1);
	return 0;
}

你可能感兴趣的:(编程,C/C++,算法,数据结构,c++,c语言)