fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. // Hàm để tìm tất cả các ước của một số nguyên dương
  5. vector<int> findDivisors(int n) {
  6. vector<int> divisors;
  7. for (int i = 1; i <= sqrt(n); ++i) {
  8. if (n % i == 0) {
  9. divisors.push_back(i);
  10. if (n / i != i) {
  11. divisors.push_back(n / i);
  12. }
  13. }
  14. }
  15. return divisors;
  16. }
  17.  
  18. // Hàm để phân tích số thành tích các thừa số nguyên tố
  19. string primeFactorization(int n) {
  20. string result = "";
  21. for (int i = 2; i * i <= n; ++i) {
  22. while (n % i == 0) {
  23. result += to_string(i) + "*";
  24. n /= i;
  25. }
  26. }
  27. if (n > 1) {
  28. result += to_string(n);
  29. }
  30. return result;
  31. }
  32.  
  33. int main() {
  34.  
  35. int T;
  36. cin >> T;
  37.  
  38. for (int i = 0; i < T; ++i) {
  39. int M;
  40. cin >> M;
  41.  
  42. vector<int> divisors = findDivisors(M);
  43. int numDivisors = divisors.size();
  44.  
  45. string factorization = primeFactorization(M);
  46.  
  47. cout << numDivisors << " " << factorization << endl;
  48. }
  49.  
  50.  
  51. return 0;
  52. }
Success #stdin #stdout 0s 5296KB
stdin
3
15
30
13
stdout
4 3*5
8 2*3*5
2 13