P3951小凯的疑惑

这是2017年提高组的第一题,是一个小学奥数题?听说很多大佬爆零了,我AC了,,,

这个题首先给出两个素数,问取任意个这两个素数之和不可以达到的最大的数是多少?拿到这个题首先很蒙,于是试了试样例,并没有得到什么启发,于是就构思代码,想双层for循环这两个数的个数,但怎样最大呢?然后再次去分析数据。eg.7&3=11,2&5=3,3$4=5。突然间,发现这些值都是a*b-(a+b)。但是看数据范围,发现1*10^9-->1*10^18,所以一定要开long long.

1.拿到这种“奥数”,一定要分析透彻数据,寻找公式,再思考原理去验证公式正确性,前提是数据必须算对

2.注意对数据范围进行运算

代码

#include<iostream>
#include<cstdio>
using namespace std;
int main(){
    long long a,b;
    cin>>a>>b;
    cout<<(a*b)-(a+b);
    return 0;
}

是的,这个题的代码可能是历史上最简单的了。

猜你喜欢

转载自www.cnblogs.com/china-mjr/p/11330005.html