概述
第41题
题目来源ProjectEuler
该题求由1-n的数字的全排列构成的数中,最大的素数。
显然n小于等于九。而若n=9,则
∑9i=1i=45
,是9的倍数,所以
n≤8
。
我们利用prev_permutation()函数,求一个全排列的上一个全排列,而运行
len!
次后将会回到初始排列。我们枚举全排列的长度,由长至短依次检验,一旦成功则输出并结束程序。
#include<bits/stdc++.h>
using namespace std;
bool check(long long x){
for (long long i=2;i*i<=x;i++){
if (x%i==0) return false;
}
return true;
}
int main(){
int f[10]={1,};
for (int i=1;i<=9;i++) f[i]=f[i-1]*i;
char x[]={'1','2','3','4','5','6','7','8','