Untitled
unknown
plain_text
3 years ago
1.1 kB
8
Indexable
#include <iostream>
using namespace std;
int N;
int arr[30];
int art[30];
void reset(int ar[30])
{
for (int i = 0; i < 30; i++)
{
ar[i] = 0;
}
}
bool check(int ars)
{
if (ars == 2)
{
return false;
}
for (int i = 2; i <= ars / 2; i++)
{
if (ars % i == 0)
return false;
}
return true;
}
void prime_ring(int& cnt, int k)
{
if (k == N)
{
if (check(art[k - 1] + art[0]))
{
cnt++;
}
}
for (int i = 1; i < N; i++)
{
if (arr[i] != 0)
{
if (check(arr[i] + art[k - 1]))
{
art[k] = arr[i];
arr[i] = 0;
prime_ring(cnt, k + 1);
arr[i] = art[k];
}
}
}
}
int main()
{
int testcase;
cin >> testcase;
for (int tc = 1; tc <= testcase; tc++)
{
cin >> N;
reset(arr);
reset(art);
for (int i = 0; i < N; i++)
{
cin >> arr[i];
}
// co dinh mot phan tu de xep vong nguyen to
// xếp các số khac nhau sao cho tao thnh mot vong so trc + so sau la so nguyen to
art[0] = arr[0];
int cnt = 0;
prime_ring(cnt, 1);
cout << "Case " << tc << ": " << cnt << endl;
}
}Editor is loading...