Azdws

max count of simple nums in array (consecutive)

Mar 10th, 2016
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6. bool sorc(int a);
  7.  
  8. int main() {
  9. setlocale(0, "Russian");
  10.  
  11. int n;
  12. cout << "Введите размерность массива: "; cin >> n;
  13.  
  14. int *p = new int[n];
  15. int count = 0, leng = 0, sleng = 0; // обнуление (для счётчиков)
  16.  
  17. cout << "Исходный массив с случайными элементами:\n";
  18. cout << "\n";
  19.     for (int i = 0; i < n; i++) {
  20.     cout << "P[" << i << "] = " << ( p[i] = rand()%30 ) << endl;
  21.    
  22.         if( sorc(p[i]) ) {
  23.         count++; // счётчик, увеличение кол-ва простых чисел
  24.         leng++;  // счётчик, увеличение кол-ва подряд идущих простых чисел
  25.         }
  26.         else {
  27.             if(leng > sleng) {
  28.             sleng = leng; // новый максимум
  29.             }  
  30.             leng = 0; // обнуление
  31.         }
  32.        
  33.     }
  34.  
  35. cout << "\n";
  36.  
  37. cout << "[Результат] Максимальное число подряд идущих простых чисел: " << sleng << endl;
  38. cout << "[Результат] Общее кол-во простых чисел: " << count << endl;
  39.  
  40. delete [] p;
  41.  
  42. }
  43.  
  44. /*------------- SimpleOrComposite ---------------*/
  45.  
  46. bool sorc(int a) {
  47. int count = 0;
  48.     if (a == 1) {
  49.     return 0;
  50.     }
  51.    
  52.     else {
  53.     if (a == 2) {
  54.     return 1;
  55.     }
  56.     else {
  57.         for (int i = 1; i <= a; i++ ) {
  58.            
  59.             if (a % i == 0) {
  60.                 count++;
  61.             }  
  62.            
  63.         }  
  64.                 if (count == 2) {
  65.                 return 1;
  66.                 } else {
  67.                 return 0;
  68.                 }
  69.     }
  70.    
  71.     }
  72. }
  73. /*-----------------------------------------------*/
Advertisement
Add Comment
Please, Sign In to add comment