0Dima_0

153 2

Oct 24th, 2021 (edited)
294
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. /*
  7. int getDivisorsCount(int number) {
  8.     cout << "Checking number: " << number << "\r";
  9.     //cout << "\n" << number << " ";
  10.     if (sqrt(number) == (int)sqrt(number)) {
  11.         int primesIndex = 0;
  12.         int amount = 0; //amount of divisors
  13.         int numCopy = (int)sqrt(number);
  14.         while (primes[primesIndex] <= sqrt(number)) {
  15.             while (true) {
  16.                 if (numCopy % primes[primesIndex] == 0) {
  17.                     amount += 2;
  18.                     //cout << " " << divisor << " " << divisor;
  19.                     numCopy = numCopy / primes[primesIndex];
  20.                 }
  21.                 else break;
  22.             }
  23.             primesIndex++;
  24.         }
  25.         //cout << " " << amount;
  26.         return amount;
  27.     }
  28.     else {
  29.         //cout << "Число не является полным квадратом!";
  30.         return -1;
  31.     }
  32. }
  33. */
  34.  
  35. int main() {
  36.     int primes[10];
  37.     int index = 0;
  38.     int n = 2;
  39.     bool is_prime = true;
  40.     while (index < 10) {
  41.         for (int i = 2; i < n; i++) {
  42.             if (n % i == 0) {
  43.                 is_prime = false;
  44.                 break;
  45.             }
  46.         }
  47.         if (is_prime) {
  48.             primes[index] = n;
  49.             index++;
  50.             cout << n << endl;
  51.         }
  52.         n++;
  53.         is_prime = true;
  54.     }
  55.  
  56.     int number;
  57.     cin >> number;
  58.     while (true) {
  59.         int answer = -1;
  60.  
  61.         cout << "Checking number: " << number << "\n";
  62.         //cout << "\n" << number << " ";
  63.         if (sqrt(number) == (int)sqrt(number)) {
  64.             int primesIndex = 0;
  65.             int amount = 0; //amount of divisors
  66.             int numCopy = (int)sqrt(number);
  67.             while (primes[primesIndex] <= sqrt(number)) {
  68.                 while (true) {
  69.                     if (numCopy % primes[primesIndex] == 0) {
  70.                         amount += 2;
  71.                         //cout << " " << divisor << " " << divisor;
  72.                         numCopy = numCopy / primes[primesIndex];
  73.                     }
  74.                     else break;
  75.                 }
  76.                 primesIndex++;
  77.             }
  78.             //cout << " " << amount;
  79.             answer = amount;
  80.         }
  81.         else {
  82.             //cout << "Число не является полным квадратом!";
  83.             answer = -1;
  84.         }
  85.  
  86.  
  87.         if (answer == 1600) break;
  88.         else number++;
  89.     }
  90. }
RAW Paste Data