Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace NODER
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine("Please enter a number");
- long num = long.Parse(Console.ReadLine());
- while (num > 0)
- {
- if (perfectNum(num)== true) // Perfect Number
- {
- Console.WriteLine("The number " + num + " is a perfect number");
- }
- else
- {
- Console.WriteLine("The number " + num + " is not a perfect number");
- }
- if (Rising(num) == true) // Rising
- {
- Console.WriteLine(num + " is a Rising number");
- }
- else
- {
- Console.WriteLine(num + " is not a Rising number");
- }
- if (ReallyRising(num) == true) // Rising
- {
- Console.WriteLine(num + " is a Really Rising number");
- }
- else
- {
- Console.WriteLine(num + " is not a Really Rising number");
- }
- if (Descending(num) == true) // Rising
- {
- Console.WriteLine(num + " is a Descending number");
- }
- else
- {
- Console.WriteLine(num + " is not a Descending number");
- }
- if (ReallyDescending(num) == true) // Rising
- {
- Console.WriteLine(num + " is a Really Descending number");
- }
- else
- {
- Console.WriteLine(num + " is not a Really Descending number");
- }
- if (Palindrome(num) == true) // Palindrome
- {
- Console.WriteLine(num + " is a Palindrome number");
- }
- else
- {
- Console.WriteLine(num + " is not a Palindrome number");
- }
- if (Mersenne(num) == true) //Mersenne
- {
- Console.WriteLine(num + " is a Mersenne number");
- }
- else
- {
- Console.WriteLine(num + " is not a Mersenne Prime number");
- }
- if (Prime(num) == true)
- {
- Console.WriteLine(num + " is a Prime number");
- if (GPrime(num) == true) // Germain Prime
- {
- Console.WriteLine(num + " is a Germain Prime number");
- }
- else
- {
- Console.WriteLine(num + " is not a Germain Prime number");
- }
- if (FirstTwinPrime(num) == true)
- {
- Console.WriteLine(num + " is a Fist Twin Prime number");
- }
- else
- {
- Console.WriteLine(num + " is not a Fist Twin Prime number");
- }
- if (SecondTwinPrime(num) == true)
- {
- Console.WriteLine(num + " is a Second Twin Prime number");
- }
- else
- {
- Console.WriteLine(num + " is not a Second Twin Prime number");
- }
- if (Mersenne(num) == true)
- {
- Console.WriteLine(num + " is a Prime and a Mersenne number");
- }
- else
- {
- Console.WriteLine(num + " is not a Prime and a Mersenne number");
- }
- }
- else
- {
- Console.WriteLine(num + " is not a Prime numeber");
- Console.WriteLine("--------------------------------------------");
- }
- Console.WriteLine("Please enter a number");
- num = long.Parse(Console.ReadLine());
- }
- }
- public static bool perfectNum(long num)
- {
- Console.WriteLine("-----------------Perfect ?---------------------");
- long sum = 1;
- Console.Write("1");
- for (long i = 2; i < num; i++)
- {
- if (num % i == 0)
- {
- Console.Write("+" + i);
- sum = sum + i;
- }
- }
- if (sum == num)
- {
- Console.Write("=" + num);
- Console.WriteLine("");
- return true;
- }
- else
- {
- Console.Write("!=" + num);
- Console.WriteLine("");
- return false;
- }
- }
- public static bool Rising(long num)
- {
- Console.WriteLine("-----------------Rising & Descending---------------------");
- if (num < 10)
- {
- return false;
- }
- long digits = getDigits(num);
- long last = num % 10;
- num = num / 10;
- long counter = 1;
- while (num > 0)
- {
- if (num % 10 <= last)
- {
- counter++;
- }
- last = num % 10;
- num = num / 10;
- }
- if (counter == digits)
- {
- return true;
- }
- return false;
- }
- public static bool ReallyRising(long num)
- {
- if (num < 10)
- {
- return false;
- }
- long digits = getDigits(num);
- long last = num % 10;
- num = num / 10;
- long counter = 1;
- while (num > 0)
- {
- if (num % 10 < last)
- {
- counter++;
- }
- last = num % 10;
- num = num / 10;
- }
- if (counter == digits)
- {
- return true;
- }
- return false;
- }
- public static bool Descending(long num)
- {
- if (num < 10)
- {
- return false;
- }
- long digits = getDigits(num);
- long last = num % 10;
- num = num / 10;
- long counter = 1;
- while (num > 0)
- {
- if (num % 10 >= last)
- {
- counter++;
- }
- last = num % 10;
- num = num / 10;
- }
- if (counter == digits)
- {
- return true;
- }
- return false;
- }
- public static bool ReallyDescending(long num)
- {
- if (num < 10)
- {
- return false;
- }
- long digits = getDigits(num);
- long last = num % 10;
- num = num / 10;
- long counter = 1;
- while (num > 0)
- {
- if (num % 10 > last)
- {
- counter++;
- }
- last = num % 10;
- num = num / 10;
- }
- if (counter == digits)
- {
- return true;
- }
- return false;
- }
- public static bool Palindrome(long num)
- {
- Console.WriteLine("-----------------Palindrome ?---------------------");
- long temp = num; // for defining num to its back after doing actions with num
- long digits = getDigits(num);
- long last;
- long rev = 0;
- long pow = 1;
- for (long i = 1; i <= (digits - 1); i++)
- {
- pow = pow * 10;
- }
- while (num > 0)
- {
- last = num % 10;
- rev = rev + (last * pow);
- num = num / 10;
- pow = pow / 10;
- }
- num = temp;
- Console.WriteLine("The input number is " + num);
- Console.WriteLine("Its reverse " + rev);
- if (num == rev)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- public static bool Mersenne(long num)
- {
- Console.WriteLine("-----------------Mersenne ?---------------------");
- long digits = getDigits(num);
- long pow = 1;
- for (long i = 1; i <= num; i++)
- {
- if ((2 * pow) - 1 == num)
- {
- return true;
- }
- pow++;
- }
- return false;
- }
- public static bool Prime(long num)
- {
- Console.WriteLine("-----------------Prime ?---------------------");
- for (long i = 2; i <= num - 1; i++)
- {
- if (num % i == 0)
- {
- return false;
- }
- }
- return true;
- }
- public static bool GPrime(long num)
- {
- Console.WriteLine("-----------------GPrime ?---------------------");
- for (long i = 2; i <= (((num * 2) + 1) - 1); i++)
- {
- if (((num * 2) + 1) % i == 0)
- {
- return false;
- }
- }
- return true;
- }
- public static bool FirstTwinPrime(long num)
- {
- Console.WriteLine("-----------------FirstTwinPrime ?---------------------");
- for (long i = 2; i <= (num + 2) - 1; i++)
- {
- if ((num + 2) % i == 0)
- {
- return false;
- }
- }
- return true;
- }
- public static bool SecondTwinPrime(long num)
- {
- Console.WriteLine("-----------------SecondTwinPrime ?---------------------");
- for (long i = 2; i <= (num - 2) - 1; i++)
- {
- if ((num - 2) % i == 0)
- {
- return false;
- }
- }
- return true;
- }
- public static long getDigits(long num)
- {
- long digits = 0;
- while (num > 0)
- {
- if ((num / 10) >= 0)
- {
- digits++;
- }
- num = num / 10;
- }
- return digits;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement