Advertisement
Nasysysy

Untitled

Nov 20th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.36 KB | None | 0 0
  1. /*Коробейников
  2. Лаба 9
  3. Вариант-1.
  4. Дана последовательность натуральных чисел {Aj}j=1...n (n<=10000). Удалить из последовательности простые числа и продублировать составные числа, сумма цифр которых равна 15.
  5. */
  6.  
  7. #include <iostream>
  8. #include <cmath>
  9. using namespace std;
  10.  
  11. bool checked_prime(int a){
  12.     if(a == 1) return false;
  13.     for(int i = 2; i <= sqrt(a); i++){
  14.         if(a % i == 0) return false;
  15.     }
  16.     return true;
  17. }
  18.  
  19. bool checked_amount(int a){
  20.     int sum = 0;
  21.     while(a > 9){
  22.         sum += a % 10;
  23.         a /= 10;
  24.     }
  25.     sum += a;
  26.     if(sum == 15)
  27.         return true;
  28.     else
  29.         return false;
  30. }
  31.  
  32. int main(){
  33.     int n;
  34.     cin >> n;
  35.     pair<int, int> mas[n];
  36.     for(int i = 0; i < n; i++){
  37.         cin >> mas[i].first;
  38.         mas[i].second = 0;
  39.         if(checked_prime(mas[i].first)) mas[i].second = 1;
  40.         if(checked_amount(mas[i].first)) mas[i].second = 2;
  41.     }
  42.     for(int i = 0; i < n; i++){
  43.         switch(mas[i].second){
  44.             case 2:
  45.                 cout << mas[i].first << " " << mas[i].first << " ";
  46.                 break;
  47.             case 0:
  48.                 cout << mas[i].first << " ";
  49.                 break;
  50.         }
  51.     }
  52.     return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement