2018 Multi-University Training Contest 1 1001 Maximum Multiple

Problem Description

Given an integer n, Chiaki would like to find three positive integers x, y and z such that: n=x+y+z, x∣n, y∣n, z∣n and xyz is maximum.

Input

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

Output

For each test case, output an integer denoting the maximum xyz. If there no such integers, output −1 instead.

Sample Input

3

1

2

3

Sample Output

-1

-1

1

#include <iostream>
#include <cstdio>
using namespace std;
int main() {
	int t, num;
	long long a;
	while(~scanf("%d", &t)) {
		while(t--) {
			scanf("%d", &num);
			if(num%3==0) {
				printf("%lld\n", (long long)num*num*num/27);
			} else if(num%4==0){
				printf("%lld\n", (long long)num*num*num/32);	
			} else {
				printf("-1\n");
			}
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/adusts/article/details/81173726