problemscpp
A collection of my answers to algorithm problems in c++.
函数
pat::b::b1096 命名空间参考

1096 大美数 更多...

函数

int main (istream &cin, ostream &cout)
 
 TEST (b1096, case1)
 

详细描述

1096 大美数

函数说明

◆ main()

int pat::b::b1096::main ( istream &  cin,
ostream &  cout 
)

在文件 pat.cpp3415 行定义.

3415 {
3416 int k;
3417 cin >> k;
3418 for(int i = 0; i < k; i++) {
3419 unsigned num;
3420 cin >> num;
3421 unordered_set<unsigned> fs;
3422 for(unsigned f = 1; f <= num; f++) {
3423 if(num % f == 0) {
3424 fs.insert(f);
3425 }
3426 }
3427 vector<unsigned> vec(fs.size());
3428 int fi = 0;
3429 for(const auto f: fs) {
3430 vec[fi++] = f;
3431 }
3432 if(vec.size() < 4) {
3433 cout << "No" << endl;
3434 continue;
3435 }
3436 bool ok = false;
3437 for(auto i1 = 0; i1 + 3 < vec.size(); i1++) {
3438 for(auto i2 = i1 + 1; i2 + 2 < vec.size(); i2++) {
3439 for(auto i3 = i2 + 1; i3 + 1 < vec.size(); i3++) {
3440 for(auto i4 = i3 + 1; i4 < vec.size(); i4++) {
3441 if((vec[i1] + vec[i2] + vec[i3] + vec[i4]) % num == 0) {
3442 ok = true;
3443 goto LOOP_END;
3444 }
3445 }
3446 }
3447 }
3448 }
3449 LOOP_END:
3450 if(ok) {
3451 cout << "Yes" << endl;
3452 } else {
3453 cout << "No" << endl;
3454 }
3455 }
3456 return 0;
3457 }
int vec[100010]
Definition: pat.cpp:5095

引用了 pat::a::a7_2::vec.

被这些函数引用 TEST().

◆ TEST()

pat::b::b1096::TEST ( b1096  ,
case1   
)

在文件 pat_test.cpp1679 行定义.

1679 {
1680 istringstream in("3\n"
1681 "18 29 40");
1682 auto out = ostringstream();
1683 main(in, out);
1684 const auto ans = out.str();
1685 ASSERT_EQ("Yes\n"
1686 "No\n"
1687 "Yes\n",
1688 out.str());
1689 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().