『算法-ACM竞赛-数学-数论』 HDU6298 Maximum Multiple 打表找规律

『算法-ACM 竞赛-数学-数论』 HDU6298 Maximum Multiple 打表找规律

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Given an integer nn, Chiaki would like to find three positive integers xx, yy and zzsuch that: n=x+y+zn=x+y+z, x∣nx∣n, y∣ny∣n, z∣nz∣n and xyzxyz is maximum.

````

Input

```cpp
There are multiple test cases. The first line of input contains an integer TT (1≤T≤1061≤T≤106), indicating the number of test cases. For each test case:
The first line contains an integer nn (1≤n≤1061≤n≤106).
````

**Output**

```cpp
For each test case, output an integer denoting the maximum xyzxyz. If there no such integers, output −11 instead.

Sample Input

1
2
3
4
3
1
2
3

Sample Output

1
2
3
-1
-1
1

只有因子中有 4 或者有 3 才能被拆成 X+Y+Z=N,然后打了表验证。
最后 wa 了好几次,是因为 int 和 int 计算之后还是 int 就算赋值给 long long .
打表代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <bits/stdc++.h>
using namespace std;
int main()
{
int T;
scanf("%d", &T);
while (T--)
{
int n;
for (int n = 1; n <= 100; n++)
{
int maxt = -1;
int a, b, c;
for (int x = 1; x <= n; x++)
{
for (int y = 1; y <= n - x; y++)
{
int z = n - x - y;
if (z && n % x == 0 && n % y == 0 && n % z == 0)
{
if (maxt < x * y * z)
{
a = x;
b = y;
c = z;
}
maxt = max(maxt, x * y * z);
}
}
}
printf("%d:%5d %d %d %d\n", n, maxt, a, b, c);
if (n % 12 == 0)
printf("\n");
}
}
return 0;
}

AC

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <bits/stdc++.h>
using namespace std;
int main()
{
int T;
long long n,x,y,z;
long long sum;
scanf("%d", &T);
while (T--)
{
scanf("%lld", &n);
if ((n % 3) == 0)
{
x = y = z = n / 3;
sum = x * y * z;
if (x + y + z == n)
printf("%lld\n", sum);
else
puts("-1");
}
else if ((n % 4) == 0)
{
x = y = n / 4, z = n / 2;
sum = x * y * z;
if (x + y + z == n)
printf("%lld\n", sum);
else
puts("-1");
}
else
puts("-1");
}
}

『算法-ACM竞赛-数学-数论』 HDU6298 Maximum Multiple 打表找规律
https://chiamzhang.github.io/2024/06/29/『算法-ACM竞赛-数学-数论』 HDU6298 Maximum Multiple 打表找规律/
Author
Chiam
Posted on
June 29, 2024
Licensed under