Project Euler: Problem 41 Pandigital prime, eulerpandigital
We shall say thatN-Digit number is pandigital if it makes use of all the digits 1NExactly once. For example, 2143 is a 4-digit pandigital and is also prime.
What is the largestN-Digit pandigital prime that exists?
#include <iostream>#include <string>using namespace std;int res = 0;bool prim(int a){for (int i = 2; i*i <= a; i++){if (a%i == 0)return false;}return true;}void perm(int list[], int n, int k){int temp1, temp2;if (n == 1){int sum = 0;for (int i = k; i > 0; i--)sum = sum * 10 + list[i];if (prim(sum)&&sum > res)res = sum;}elsefor (int i = 1; i <= n; i++){temp1 = list[i];list[i] = list[n];list[n] = temp1;perm(list, n - 1, k);temp2 = list[i];list[i] = list[n];list[n] = temp2;}}int main(){for (int j = 9; j >= 1; j--){int list[200];for (int i = 1; i <= j; i++)list[i] = i;perm(list, j, j);}cout << res << endl;system("pause");return 0;}