Guest User

Untitled

a guest
Mar 22nd, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. vector<int> primus(int max)
  2. {
  3. vector<int> p { 2 };
  4. vector<bool> prime(max+1, true);
  5. prime[0] = prime[1] = false;
  6. for(int i = 3; i<= max; i += 2)
  7. if (prime[i])
  8. {
  9. p.push_back(i);
  10. if (i*i <= max)
  11. for(int j= i*i; j <= max; j+=i)
  12. prime[j] = false;
  13. }
  14. return p;
  15. }
  16.  
  17. int main(int argc, const char * argv[])
  18. {
  19. vector<int> p = primus(28300);
  20.  
  21. int N = 796400000;
  22. for(size_t i = 0; i < p.size() && N > p[i]; ++i)
  23. {
  24. while (N%p[i] == 0)
  25. {
  26. cout << p[i] << endl;
  27. N /= p[i];
  28. }
  29. }
  30. if (N > 1) cout << N << endl;
  31. }
  32.  
  33. vector <int> getDivs(int n) {
  34. int q;
  35. vector <int> res;
  36.  
  37. for (q=1; q*q<n; ++q) {
  38. if (n % q == 0) {
  39. res.push_back(q);
  40. res.push_back(n/q);
  41. }
  42. }
  43.  
  44. if (q*q == n) {
  45. res.push_back(q);
  46. }
  47.  
  48. return res;
  49. }
  50.  
  51. #include <iostream>
  52. #include <vector>
  53. using namespace std;
  54.  
  55. /*
  56. Функция получения делителей числа N
  57. N - начальное число
  58. &divisor - ссылка на вектор, куда запишут результат
  59. */
  60. void getDivisor(int N, vector<int>& divisor){
  61. int i = 2;
  62. while(N!=1){
  63. if(N % i == 0){
  64. N /= i;
  65. divisor.push_back(i);
  66. } else {
  67. ++i;
  68. }
  69. }
  70. }
  71.  
  72. int main() {
  73. int N;
  74. vector<int> divisor;
  75. cin >> N;
  76.  
  77. getDivisor(N, divisor);
  78.  
  79. for(int i=0; i<divisor.size(); ++i){
  80. cout << divisor[i] << endl;
  81. }
  82. return 0;
  83. }
Add Comment
Please, Sign In to add comment