82 lines
1.7 KiB
C++
82 lines
1.7 KiB
C++
#include <cmath>
|
|
#include <iostream>
|
|
using namespace std;
|
|
int n, k,a[8] = { 0, 1, 2, 3, 4, 5, 6, 7 },allans=0;
|
|
bool ce[8]={0};
|
|
bool pan(int n)
|
|
{
|
|
int len = sqrt(n);
|
|
for (int i = 2; i <= len; i++) {
|
|
if (n % i == 0) {
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
void dg(int xian){
|
|
if(xian>n){
|
|
// for(int i=1;i<=n;i++){
|
|
// cout<<a[i]<<" ";
|
|
// }
|
|
// cout<<endl;
|
|
|
|
int now = 0, zong = 1, ans = 0;
|
|
for (int i = n - k + 2; i <= n; i++) {
|
|
now *= 10;
|
|
now += a[i];
|
|
zong *= 10;
|
|
}
|
|
for (int i = 1; i <= n; i++) {
|
|
now %= zong;
|
|
now *= 10;
|
|
now += a[i];
|
|
ans += pan(now);
|
|
}
|
|
if(ans>allans){
|
|
allans=ans;
|
|
}
|
|
}
|
|
for(int i=2;i<=n;i++){
|
|
if(ce[i]==0){
|
|
a[xian]=i;
|
|
ce[i]=1;
|
|
dg(xian+1);
|
|
ce[i]=0;
|
|
}
|
|
}
|
|
}
|
|
int main()
|
|
{
|
|
int now = 0, zong = 1, ans = 0;
|
|
cin >> n >> k;
|
|
if (k == 1) {
|
|
if (n == 1) {
|
|
cout << "0" << endl
|
|
<< "0";
|
|
} else {
|
|
int chu = 1;
|
|
for (int i = 3; i <= n; i+=2) {
|
|
chu++;
|
|
}
|
|
cout << chu << endl
|
|
<< chu;
|
|
}
|
|
} else {
|
|
for (int i = n - k + 2; i <= n; i++) {
|
|
now *= 10;
|
|
now += a[i];
|
|
zong *= 10;
|
|
}
|
|
for (int i = 1; i <= n; i++) {
|
|
now %= zong;
|
|
now *= 10;
|
|
now += a[i];
|
|
ans += pan(now);
|
|
}
|
|
cout<<ans<<endl;
|
|
dg(2);
|
|
cout<<allans;
|
|
}
|
|
return 0;
|
|
}
|