1096 大美数
思路:暴力枚举即可,没啥坑
#include<stdio.h>
#include<iostream>
#include<vector>
using namespace std;
vector<int> go(int num) {
vector<int> ve;
for (int i = 1; i <= num; i++) {
if (num % i == 0) {
ve.push_back(i);
}
}
return ve;
}
bool is(vector<int> col, int x) {
if (col.size() < 4) { return false; }
else {
for (int a = 0; a < col.size() - 3; a++) {
for (int b = a + 1; b < col.size() - 2; b++) {
for (int c = b + 1; c < col.size() - 1; c++) {
for (int d = c + 1; d < col.size(); d++) {
if ((col[a] + col[b] + col[c] + col[d]) % x == 0) {
return true;
}
}
}
}
}
}
return false;
}
int main(int argc, char* argv[]) {
int n; cin >> n;
for (int i = 0; i < n; i++) {
int x; cin >> x;
vector<int> col = go(x);
bool flag = is(col, x);
if (flag) { cout << "Yes" << endl; }
else { cout << "No" << endl; }
}
return 0;
}