fork(1) download
  1. using System;
  2.  
  3. namespace Product_of_Digits
  4. {
  5. class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. ulong n = Convert.ToUInt64(Console.ReadLine());
  10. ulong[] primos = { 2, 3, 5, 7 };
  11. ulong[] pr = new ulong[4];
  12. ulong suma = 0;
  13.  
  14. if (n >= 10)
  15. {
  16. for (ulong i = 0; i < 4; i++)
  17. {
  18. while (n % primos[i] == 0)
  19. {
  20. pr[i]++;
  21. n /= primos[i];
  22. }
  23.  
  24. }
  25. if (n / 7 != 0)
  26. Console.WriteLine("-1");
  27. else
  28. {
  29. for (ulong i = 0; i < 4; i++)
  30. suma += pr[i];
  31. ulong[] print = new ulong[suma];
  32. ulong[] printlargo = new ulong[suma];
  33. ulong j = 0;
  34. for (ulong i = 0; i <= 3; i++)
  35. {
  36. while (pr[i] > 0)
  37. {
  38. printlargo[j] = primos[i];
  39. pr[i]--;
  40. j++;
  41. }
  42. }
  43. ulong k = suma - 1;
  44. while (k >=0&&k<suma)
  45. {
  46. print[k] = printlargo[k];
  47. j = 1;
  48. if (j > k)
  49. break;
  50. while (print[k] * printlargo[k - j] < 10)
  51. {
  52. print[k] *= printlargo[k - j];
  53. j++;
  54. if (j >k)
  55. break;
  56. }
  57. k -= j;
  58. }
  59. Array.Sort(print);
  60. for (ulong i = 0; i < suma; i++)
  61. {
  62. if (print[i] != 0)
  63. {
  64. Console.Write("{0}", print[i]);
  65. }
  66. }
  67. }
  68. }
  69. else if (n > 0 && n < 10)
  70. Console.WriteLine("{0}", n);
  71. else
  72. Console.WriteLine("1{0}", n);
  73. }
  74. }
  75. }
Success #stdin #stdout 0.01s 29800KB
stdin
24
stdout
46