vasildiavolo

Untitled

Mar 30th, 2018
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. using System;
  2. class Program
  3. {
  4. static void Main()
  5. {
  6. long finalNumber = long.Parse(Console.ReadLine());
  7.  
  8. for (long number = 232; number <= finalNumber; number++)
  9. {
  10. if (IsPalindrome(number) && IsHaveEvenAndDivisibleBy7(number))
  11. {
  12. Console.WriteLine(number);
  13. }
  14. }
  15. }
  16.  
  17. static bool IsPalindrome(long number)
  18. {
  19. bool isPalindrome = false;
  20.  
  21. long numberLenght = GetNumberLenght(number);
  22. long second = number % (long)Math.Pow(10, numberLenght / 2);
  23. long first = (number - second) / (long)Math.Pow(10, numberLenght / 2);
  24.  
  25. long counter = 0;
  26. long secondInt = 0;
  27. while (counter < numberLenght / 2)
  28. {
  29. secondInt = secondInt * 10 + second % 10;
  30. second = second / 10;
  31. counter++;
  32. }
  33.  
  34. if (numberLenght % 2 != 0)
  35. {
  36. first = (first - (first % 10)) / 10;
  37. }
  38.  
  39. if (first == secondInt)
  40. {
  41. isPalindrome = true;
  42. }
  43.  
  44. return isPalindrome;
  45. }
  46.  
  47. static bool IsHaveEvenAndDivisibleBy7(long number)
  48. {
  49. bool haveEvenDivisible7 = false;
  50.  
  51. long digit = number;
  52. long lastDigit = 0;
  53. long sum = 0;
  54.  
  55. for (long i = 0; i < number.ToString().Length; i++)
  56. {
  57. lastDigit = digit % 10;
  58. sum += lastDigit;
  59.  
  60. if (lastDigit % 2 == 0)
  61. {
  62. haveEvenDivisible7 = true;
  63. }
  64.  
  65. digit = (digit - lastDigit) / 10;
  66. }
  67.  
  68. if (haveEvenDivisible7)
  69. {
  70. haveEvenDivisible7 = false;
  71. if (sum % 7 == 0)
  72. {
  73. haveEvenDivisible7 = true;
  74. }
  75. }
  76.  
  77. return haveEvenDivisible7;
  78. }
  79.  
  80. static long GetNumberLenght(long number)
  81. {
  82. long lastDigit = 0;
  83. long counter = 0;
  84.  
  85. while (number > 0)
  86. {
  87. lastDigit = number % 10;
  88. number = (number - lastDigit) / 10;
  89. counter++;
  90. }
  91.  
  92. return counter;
  93. }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment