今天早上做了算法题,其中一道如下所示:
你需要在1s内算出答案。
题目如下:
给出正整数n,求a+b的最大值
其中a,b为正整数,a<=n且b<=n且gcd(a,b)=1
ps:gcd是最大公约数
>>>>对于50%的数据,n < 1000
>>>>对于100%的数据,n < 1亿
做的过程中也没由考虑时间、大整数这些,先把代码贴下来记住吧。
#include <iostream>
#include<windows.h>
using namespace std;
int main()
{
DWORD dwStart = GetTickCount();
int n;
cin >> n;
int flag = 0;
int max = 0;
for (int a = 1; a <= n; a+=2) //因为两个偶数的最大公约数一定不是1,所以这里每次循环后a+=2, b+=1。
{
for (i