Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- class Program
- {
- static void Main()
- {
- long finalNumber = long.Parse(Console.ReadLine());
- for (long number = 232; number <= finalNumber; number++)
- {
- if (IsPalindrome(number) && IsHaveEvenAndDivisibleBy7(number))
- {
- Console.WriteLine(number);
- }
- }
- }
- static bool IsPalindrome(long number)
- {
- bool isPalindrome = false;
- long numberLenght = GetNumberLenght(number);
- long second = number % (long)Math.Pow(10, numberLenght / 2);
- long first = (number - second) / (long)Math.Pow(10, numberLenght / 2);
- long counter = 0;
- long secondInt = 0;
- while (counter < numberLenght / 2)
- {
- secondInt = secondInt * 10 + second % 10;
- second = second / 10;
- counter++;
- }
- if (numberLenght % 2 != 0)
- {
- first = (first - (first % 10)) / 10;
- }
- if (first == secondInt)
- {
- isPalindrome = true;
- }
- return isPalindrome;
- }
- static bool IsHaveEvenAndDivisibleBy7(long number)
- {
- bool haveEvenDivisible7 = false;
- long digit = number;
- long lastDigit = 0;
- long sum = 0;
- for (long i = 0; i < number.ToString().Length; i++)
- {
- lastDigit = digit % 10;
- sum += lastDigit;
- if (lastDigit % 2 == 0)
- {
- haveEvenDivisible7 = true;
- }
- digit = (digit - lastDigit) / 10;
- }
- if (haveEvenDivisible7)
- {
- haveEvenDivisible7 = false;
- if (sum % 7 == 0)
- {
- haveEvenDivisible7 = true;
- }
- }
- return haveEvenDivisible7;
- }
- static long GetNumberLenght(long number)
- {
- long lastDigit = 0;
- long counter = 0;
- while (number > 0)
- {
- lastDigit = number % 10;
- number = (number - lastDigit) / 10;
- counter++;
- }
- return counter;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment