Skip to content

Commit eec50cd

Browse files
authored
Merge pull request #44 from aayush96692/patch-1
chef and prime
2 parents 36f9ec5 + a5a16c1 commit eec50cd

File tree

1 file changed

+126
-0
lines changed

1 file changed

+126
-0
lines changed

chef and prime

+126
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
#include <iostream>
2+
using namespace std;
3+
#include<stdio.h>
4+
5+
int N[200],count,ans;
6+
void printCombination1(int [], int, int,int);
7+
void printCombination2(int [], int, int,int);
8+
void combinationUtil1(int [], int [], int, int, int, int,int);
9+
void combinationUtil2(int [], int [], int, int, int, int,int);
10+
int main()
11+
{
12+
int a[100],T,k;
13+
cin>>T;
14+
for(int i=0;i<T;i++)
15+
{
16+
cin>>N[i];
17+
}
18+
for(int g=0;g<T;g++){
19+
ans=0;k=0;
20+
for(int i=2;i<=N[g];i++)
21+
{
22+
count=0;
23+
for(int j=1;j<=N[g];j++)
24+
{
25+
if(i%j==0)
26+
count++;
27+
if(count==3)
28+
break;
29+
}
30+
if(count==2)
31+
{
32+
a[k]=i;
33+
k++;
34+
}
35+
}
36+
printCombination1(a,k,4,g);
37+
printCombination2(a,k,2,g);
38+
if(ans==1)
39+
cout<<"YES"<<"\n";
40+
else
41+
cout<<"NO"<<"\n";
42+
}
43+
return 0;
44+
}
45+
46+
void printCombination1(int arr[], int n, int r,int g)
47+
{
48+
// A temporary array to store all combination one by one
49+
int data[r];
50+
51+
// all combination using temprary array 'data[]'
52+
combinationUtil1(arr, data, 0, n-1, 0, r,g);
53+
}
54+
55+
void printCombination2(int arr[], int n, int r,int g)
56+
{
57+
// A temporary array to store all combination one by one
58+
int data[r];
59+
60+
// all combination using temprary array 'data[]'
61+
combinationUtil2(arr, data, 0, n-1, 0, r,g);
62+
}
63+
64+
void combinationUtil1(int arr[], int data[], int start, int end,
65+
int index, int r,int g)
66+
{
67+
if (index == r)
68+
{
69+
if(N[g] == (data[0]*data[1]) + (data[1]*data[0]) )
70+
ans=1;
71+
if(N[g] == (data[0]*data[1]) + (data[1]*data[2]) )
72+
ans=1;
73+
if(N[g] == (data[0]*data[1]) + (data[1]*data[3]) )
74+
ans=1;
75+
if(N[g] == (data[0]*data[2]) + (data[1]*data[0]) )
76+
ans=1;
77+
if(N[g] == (data[0]*data[2]) + (data[1]*data[2]) )
78+
ans=1;
79+
if(N[g] == (data[0]*data[2]) + (data[1]*data[3]) )
80+
ans=1;
81+
if(N[g] == (data[0]*data[3]) + (data[2]*data[1]) )
82+
ans=1;
83+
if(N[g] == (data[0]*data[3]) + (data[1]*data[0]) )
84+
ans=1;
85+
if(N[g] == (data[0]*data[3]) + (data[1]*data[2]) )
86+
ans=1;
87+
if(N[g] == (data[0]*data[3]) + (data[1]*data[3]) )
88+
ans=1;
89+
if(N[g] == (data[2]*data[3]) + (data[0]*data[1]) )
90+
ans=1;
91+
if(N[g] == (data[2]*data[3]) + (data[0]*data[2]) )
92+
ans=1;
93+
if(N[g] == (data[2]*data[3]) + (data[0]*data[3]) )
94+
ans=1;
95+
if(N[g] == (data[2]*data[3]) + (data[1]*data[2]) )
96+
ans=1;
97+
if(N[g] == (data[2]*data[3]) + (data[1]*data[3]) )
98+
ans=1;
99+
return;
100+
}
101+
if(ans==1)
102+
return;
103+
104+
for (int i=start; i<=end && end-i+1 >= r-index; i++)
105+
{
106+
data[index] = arr[i];
107+
combinationUtil1(arr, data, i+1, end, index+1, r,g);
108+
}
109+
}
110+
111+
void combinationUtil2(int arr[], int data[], int start, int end,
112+
int index, int r,int g)
113+
{
114+
if (index == r)
115+
{
116+
if(N[g] == (data[0]*data[1]) + (data[0]*data[1]))
117+
ans=1;
118+
return;
119+
}
120+
121+
for (int i=start; i<=end && end-i+1 >= r-index; i++)
122+
{
123+
data[index] = arr[i];
124+
combinationUtil2(arr, data, i+1, end, index+1, r,g);
125+
}
126+
}

0 commit comments

Comments
 (0)