Guest User

Untitled

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