Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Diagnostics;
- using System.Linq;
- namespace Problem39
- {
- class Program
- {
- static bool[] notPrime = new bool[7654321];
- static void SetupPrimes()
- {
- notPrime[0] = true;
- notPrime[1] = true;
- for (var i = 7000000; i <= Math.Sqrt(notPrime.Length); i++)
- {
- if (notPrime[i]) continue;
- for (var j = i * 2; j < notPrime.Length; j += i)
- {
- notPrime[j] = true;
- }
- }
- }
- static bool IsPandigital(int input)
- {
- var n = input.ToString().Length;
- var outarry = Array.ConvertAll(input.ToString().ToArray(), x => (int)x - 48);
- var dict = new bool[10];
- var flag = true;
- foreach (var v in outarry)
- {
- if (dict[v])
- {
- flag = false;
- }
- dict[v] = true;
- }
- for (var i = 1; i <= n; i++)
- {
- if (!dict[i])
- {
- flag = false;
- }
- }
- return flag;
- }
- static void Main(string[] args)
- {
- var sw = new Stopwatch();
- sw.Start();
- SetupPrimes();
- for (var i = 7654320; i > 0; i--)
- {
- if (!IsPandigital(i) || notPrime[i]) continue;
- Console.WriteLine(i);
- break;
- }
- sw.Stop();
- Console.WriteLine("Solution took {0}ms", sw.ElapsedMilliseconds);
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement