Untitled
unknown
plain_text
2 years ago
1.1 kB
4
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...