Advertisement
dimipan80

Master Numbers

Mar 21st, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.15 KB | None | 0 0
  1. /*
  2. A master number is an integer that holds the following properties:
  3. • Is symmetric (palindrome), e.g. 5, 77, 282, 14341, 9553559.
  4. • Its sum of digits is divisible by 7, e.g. 77, 313, 464, 5225, 37173.
  5. • Holds at least one even digit, e.g. 232, 707, 6886, 87578.
  6.  
  7. Write a program to print all master numbers in the range [1…n].
  8. */
  9.  
  10. namespace Master_Numbers
  11. {
  12.     using System;
  13.  
  14.     internal static class MasterNumberFinder
  15.     {
  16.         private static void Main()
  17.         {
  18.             var n = int.Parse(Console.ReadLine());
  19.  
  20.             for (int i = 7; i <= n; i++)
  21.             {
  22.                 var digitsSum = SumOfDigits(i);
  23.                 if (IsPalindrome(i) && DigitsSumIsDivisibleBy7(digitsSum)
  24.                     && ContainsEvenDigit(i))
  25.                 {
  26.                     Console.WriteLine(i);
  27.                 }
  28.             }
  29.         }
  30.  
  31.         private static bool IsPalindrome(int num)
  32.         {
  33.             var numStr = num.ToString();
  34.             for (int i = 0; i < numStr.Length / 2; i++)
  35.             {
  36.                 if (numStr[i] != numStr[numStr.Length - 1 - i])
  37.                 {
  38.                     return false;
  39.                 }
  40.             }
  41.  
  42.             return true;
  43.         }
  44.  
  45.         private static int SumOfDigits(int num)
  46.         {
  47.             var sum = 0;
  48.             var number = num;
  49.             while (number >= 1)
  50.             {
  51.                 sum += number % 10;
  52.                 number /= 10;
  53.             }
  54.  
  55.             return sum;
  56.         }
  57.  
  58.         private static bool DigitsSumIsDivisibleBy7(int sum)
  59.         {
  60.             if (sum % 7 == 0)
  61.             {
  62.                 return true;
  63.             }
  64.             else
  65.             {
  66.                 return false;
  67.             }
  68.         }
  69.  
  70.         private static bool ContainsEvenDigit(int num)
  71.         {
  72.             var number = num;
  73.             while (number > 1)
  74.             {
  75.                 var nextDigit = number % 10;
  76.                 if (nextDigit % 2 == 0)
  77.                 {
  78.                     return true;
  79.                 }
  80.  
  81.                 number /= 10;
  82.             }
  83.  
  84.             return false;
  85.         }
  86.     }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement