Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Program5
  6. {
  7. class Program
  8. {
  9. public static void Main(string[] args)
  10. {
  11. var numbers = new int[100, 10000];
  12. List<int> res = new List<int>();
  13. for (var j = 1; j <= 99; j++)
  14. for (var i = 123; i <= 9999; i++)
  15. {
  16. if (GetDifference(numbers[j, i], j, i) && numbers[j, i].ToString().Length == 4)
  17. res.Add(numbers[j, i]);
  18. if (GetRightNumbers(j) && GetMultiply(j, i) && GetRightNumbers(i) &&
  19. (j.ToString().Length + i.ToString().Length == 5))
  20. numbers[j, i] = j * i;
  21. }
  22.  
  23. Console.WriteLine(res.Distinct().Sum(z => z));
  24. Console.ReadKey();
  25. }
  26.  
  27. public static bool GetMultiply(int j, int i)
  28. {
  29. var stringJ = j.ToString();
  30. var stringI = i.ToString();
  31. foreach (var e in stringJ)
  32. if (stringI.Contains(e))
  33. return false;
  34. return true;
  35. }
  36.  
  37. public static bool GetDifference(int number, int j, int i)
  38. {
  39. List<char> result = new List<char>();
  40. var stringJ = j.ToString();
  41. var stringI = i.ToString();
  42. var stringOfNumbers = number.ToString();
  43. if (!GetRightNumbers(number))
  44. return false;
  45. foreach (var itemJ in stringJ)
  46. foreach (var itemI in stringI)
  47. {
  48. if (stringOfNumbers.Contains(itemJ) || stringOfNumbers.Contains(itemI))
  49. return false;
  50. }
  51.  
  52. return true;
  53. }
  54. public static bool GetRightNumbers(int num)
  55. {
  56. var digitalCount = 0;
  57. List<int> result = new List<int>();
  58. HashSet<int> list = new HashSet<int>();
  59. while (num > 0)
  60. {
  61. var mod10 = num % 10;
  62. result.Add(mod10);
  63. if (!list.Add(mod10) || mod10 == 0)
  64. break;
  65. num /= 10;
  66. digitalCount++;
  67. }
  68. return (digitalCount == result.Count) ? true : false;
  69. }
  70. }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement