n4wn4w

02. Numerology8 November 2014

Mar 18th, 2015
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.08 KB | None | 0 0
  1. using System;
  2.  
  3. class Numerology
  4. {
  5.     static void Main()
  6.     {
  7.         //14 * 3 * 1990 = 83,580;
  8.         //03 (odd month) => 83,580 * 83,580 = 6,985,616,400;
  9.         //6,985,616,400 + 2 * 16 (P) + 1 (a) + 14 (n) + 1 (a) + 25 (y) + 15 (o) + 20 (t) = 6,985,616,508 ( > 13);
  10.         // 6 + 9 + 8 + 5 + 6 + 1 + 6 + 5 + 0 + 8 = 54 (> 13);
  11.         // 5 + 4 = 9 (∈ [0, 13] => Done!)
  12.  
  13.  
  14.         string[] input = Console.ReadLine().Split('.', ' ');
  15.  
  16.         int day = int.Parse(input[0]);
  17.         int month = int.Parse(input[1]);
  18.         int year = int.Parse(input[2]);
  19.         string username = input[3];
  20.  
  21.         long result = day * month * year;
  22.  
  23.         if (month % 2 == 1)
  24.         {
  25.             result *= result;
  26.         }
  27.  
  28.         for (int i = 0; i < username.Length; i++)
  29.         {
  30.             char currentChar = username[i];
  31.  
  32.             if (currentChar >= '0' && currentChar <= '9')
  33.             {
  34.                 result += currentChar - '0';
  35.             }
  36.             else if (currentChar >= 'a' && currentChar <= 'z')
  37.             {
  38.                 result += (currentChar - 'a') + 1;
  39.             }
  40.             else if (currentChar >= 'A' && currentChar <= 'Z')
  41.             {
  42.                 result += 2 * (currentChar - 'A' + 1);
  43.             }
  44.         }
  45.  
  46.         while (result > 13)// pri purvoto cqlostno zavurtane na cikula digitSum/result mi e 54 i zatova vliza oshte 1 put v nego i rezultata e 9
  47.         {
  48.             int digitSum = 0;
  49.  
  50.             while (result > 0)
  51.             {
  52.                 digitSum += (int)(result % 10);// zimame poslednata cifra i q pribavame kum digitSum naprimer 6,985,616,508 zimame 8 s result % 10
  53.                 result /= 10;// delim result na 10 za da moje d ami premahne poslednata cifra 6,985,616,508  maha 8 i 4isloto stava 6,985,616,50 i taka vurti while cikula dokato result ne stane 0
  54.             }
  55.  
  56.             result = digitSum;// poneje rsulta mi stava 0 mu davame da pridobie stoinostta na digitSum v tozi slu4ai purviqt put mi e 54 i za tova go vuri oshte 1 put
  57.  
  58.         }
  59.  
  60.         Console.WriteLine(result);
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment