Advertisement
AlexTasev

12_MasterNumber

May 26th, 2018
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.04 KB | None | 0 0
  1. using System;
  2.  
  3. namespace _12_MasterNumber
  4. {
  5.     class Program
  6.     {
  7.         static void Main()
  8.         {
  9.             int inputNum = int.Parse(Console.ReadLine());
  10.  
  11.             for (int num = 1; num <= inputNum; num++)
  12.             {
  13.                 bool isPalindrome = IsPalindrome(num);
  14.                 bool sumOfDigits = SumOfDigits(num);
  15.                 bool containsEvenDigit = ContainsEvenDigit(num);
  16.  
  17.                 if (isPalindrome && sumOfDigits && containsEvenDigit)
  18.                 {
  19.                     Console.WriteLine(num);
  20.                 }
  21.             }
  22.         }
  23.  
  24.         private static bool ContainsEvenDigit(int num)
  25.         {
  26.             bool result = false;
  27.             while (num > 0)
  28.             {
  29.                 int digit = num % 10;
  30.                 num = num / 10;
  31.  
  32.                 if (digit % 2 == 0)
  33.                 {
  34.                     result = true;
  35.                     break;
  36.                 }
  37.             }
  38.             return result;
  39.         }
  40.  
  41.         private static bool SumOfDigits(int num)
  42.         {
  43.             bool didDevideBy7 = false;
  44.             int sum = 0;
  45.  
  46.             while (num > 0)
  47.             {
  48.                 int digit = num % 10;
  49.                 num = num / 10;
  50.                 sum += digit;
  51.             }
  52.  
  53.             if (sum % 7 == 0)
  54.             {
  55.                 didDevideBy7 = true;
  56.             }
  57.  
  58.             return didDevideBy7;
  59.         }
  60.  
  61.         static bool IsPalindrome(int num)
  62.         {
  63.             bool result = false;
  64.             string number = num.ToString();
  65.             string forward = String.Empty;
  66.             string reversed = String.Empty;
  67.  
  68.             for (int i = 0; i < number.Length-1 / 2; i++)
  69.             {
  70.                 forward += number[i];
  71.             }
  72.  
  73.             for (int i = number.Length-1; i >= i / 2; i--)
  74.             {
  75.                 reversed += number[i];
  76.             }
  77.  
  78.             if (forward == reversed)
  79.             {
  80.                 result = true;
  81.             }
  82.  
  83.             return result;
  84.         }
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement