Advertisement
NelIfandieva

PB_Additional_LuckyNums

Aug 24th, 2022
1,423
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.17 KB | None | 0 0
  1. using System;
  2.  
  3. namespace HappyNumbers
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             int n = int.Parse(Console.ReadLine());
  10.  
  11.             int secondDigit = 0;
  12.             int firstDigit = 0;
  13.  
  14.             // В този цикъл минавам през всички 4-цифрени числа.
  15.             for (int i1 = 1000; i1 < 9999; i1++)
  16.             {
  17.                 int copyOfCheckedNum = i1; // създавам копие, за да не променям самото 4-цифрено, което е наред
  18.                 int sumOne = 0;
  19.                 int sumTwo = 0;
  20.  
  21.                 // Тук взимам всяка отделна цифра на поредното 4-цифрено
  22.                 for (int i2 = 1; i2 <= 4; i2++)
  23.                 {
  24.                     if (i2 < 3)
  25.                     {
  26.                         // така взимам от последната към първата, всяка отделна цифра в числото
  27.                         // Когато i2 < 3 взимам последната и предпоследната цифра
  28.                         // Т.е. в този if влизам само 2 пъти и 2-та пъти добавям новата цифра към sumOne
  29.  
  30.                         int a = copyOfCheckedNum % 10;
  31.                         sumOne += a;
  32.                     }
  33.                     else
  34.                     {
  35.                         // Tук също влизам 2 пъти, за да взема втората и най-сетне първата цифра на 4-цифреното
  36.                         if(i2 == 3)
  37.                         {
  38.                             // В този if влизам, хем за да взема 2-та (в моя начин предпоследна цифра),
  39.                             // хем за да я запазя, че после тя ми трябва, при проверката, дали n % firstDigit + secondDigit == 0
  40.                             secondDigit = copyOfCheckedNum % 10;
  41.                             sumTwo += secondDigit;
  42.                         }
  43.                         else
  44.                         {
  45.                             // Тук най-после взимам първата цифра на числото
  46.                             // И също така я пазя, за да проверя, дали n % firstDigit + secondDigit == 0
  47.                             firstDigit = copyOfCheckedNum % 10;
  48.                             sumTwo += firstDigit;
  49.                         }
  50.                     }
  51.  
  52.                     if(i2 < 4)
  53.                     {
  54.                         // Тази проверка, само за да не променям излишно копието на 4-цифреното повече
  55.                         copyOfCheckedNum /= 10;
  56.                     }
  57.                     else
  58.                     {
  59.                         // Ако i2 не е по-малко от 4, то или е равно, или е по-голямо
  60.                         // във всеки случай, тук вече съм взела всяка отделна цифра от 4-цифреното
  61.                         // И вече мога да правя заключения, дали 4-цифреното минава по първото условие
  62.                         // Ако sumOne != sumTwo, то няма какво да правя другата провврка, а направо ще
  63.                         // разгледам следващото поред 4-цифрено
  64.                         if(sumOne == sumTwo)
  65.                         {
  66.                             // Щом съм влязла тук, то пъврото условие е изпълнено
  67.                             // Следва да проверя второто
  68.                             int sumFirstSecondDigits = firstDigit + secondDigit;
  69.  
  70.                             if(n % sumFirstSecondDigits == 0)
  71.                             {
  72.                                 // Ако съм влязла тук, то значи е второто условие е true
  73.                                 // И 4-цифреното ми (i1) е щастливо число, заради, което го изписвам
  74.                                 Console.Write($"{i1} ");
  75.                             }
  76.                         }
  77.                     }
  78.                 }
  79.             }
  80.         }
  81.     }
  82. }
  83.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement