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

  1. 整除问题
更多...

函数

int main (istream &cin, ostream &cout)
 
 TEST (acwing3484, case1)
 
 TEST (acwing3484, case2)
 
 TEST (acwing3484, case3)
 

详细描述

  1. 整除问题

函数说明

◆ main()

int acwing::acwing3484::main ( istream &  cin,
ostream &  cout 
)

在文件 acwing408.cpp2072 行定义.

2072 {
2073 int primes[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,
2074 53, 59, 61, 67, 71, 73, 79, 83, 89, 97,
2075 101, 103, 107, 109, 113, 127, 131, 137, 139, 149,
2076 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199,
2077 211, 223, 227, 229, 233, 239, 241,
2078 251, 257, 263, 269, 271, 277, 281, 283, 293,
2079 307, 311, 313, 317, 331, 337, 347, 349,
2080 353, 359, 367, 373, 379, 383, 389, 397,
2081 401, 409, 419, 421, 431, 433, 439, 443, 449,
2082 457, 461, 463, 467, 479, 487, 491, 499,
2083 503, 509, 521, 523, 541, 547,
2084 557, 563, 569, 571, 577, 587, 593, 599,
2085 601, 607, 613, 617, 619, 631, 641, 643, 647,
2086 653, 659, 661, 673, 677, 683, 691,
2087 701, 709, 719, 727, 733, 739, 743,
2088 751, 757, 761, 769, 773, 787, 797,
2089 809, 811, 821, 823, 827, 829, 839,
2090 853, 857, 859, 863, 877, 881, 883, 887,
2091 907, 911, 919, 929, 937, 941, 947,
2092 953, 967, 971, 977, 983, 991, 997};
2093 int n, a;
2094 cin >> n >> a;
2095 map<int, int> prime_combination_a = map<int, int>();
2096 for(auto prime: primes) {
2097 while(a % prime == 0) {
2098 prime_combination_a[prime]++;
2099 a /= prime;
2100 }
2101 }
2102 map<int, int> prime_combination_n = map<int, int>();
2103 for(int i = 1; i <= n; i++) {
2104 for(const auto &[k, v]: prime_combination_a) {
2105 int j = i;
2106 while(j % k == 0) {
2107 prime_combination_n[k]++;
2108 j /= k;
2109 }
2110 }
2111 }
2112 int ans = INT_MAX;
2113 for(const auto &[k, v]: prime_combination_a) {
2114 ans = min(ans, prime_combination_n[k] / v);
2115 }
2116 if(ans == INT_MAX) {
2117 ans = 0;
2118 }
2119 cout << ans;
2120 return 0;
2121 }

被这些函数引用 TEST().

◆ TEST() [1/3]

acwing::acwing3484::TEST ( acwing3484  ,
case1   
)

在文件 acwing408_test.cpp2449 行定义.

2449 {
2450 istringstream in("6 10");
2451 auto out = ostringstream();
2452 main(in, out);
2453 const auto ans = out.str();
2454 ASSERT_EQ("1", ans);
2455 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().

◆ TEST() [2/3]

acwing::acwing3484::TEST ( acwing3484  ,
case2   
)

在文件 acwing408_test.cpp2457 行定义.

2457 {
2458 istringstream in("519 453");
2459 auto out = ostringstream();
2460 main(in, out);
2461 const auto ans = out.str();
2462 ASSERT_EQ("3", ans);
2463 }

引用了 main().

◆ TEST() [3/3]

acwing::acwing3484::TEST ( acwing3484  ,
case3   
)

在文件 acwing408_test.cpp2465 行定义.

2465 {
2466 istringstream in("339 9");
2467 auto out = ostringstream();
2468 main(in, out);
2469 const auto ans = out.str();
2470 ASSERT_EQ("83", ans);
2471 }

引用了 main().