My issue
why cant one can proceed this way
that if n is written as sum of 2 prime numbers
My code
#include <bits/stdc++.h>
using namespace std;
#define ll long long int
bool isprime(int n);
int main() {
int t;
cin>>t;
while(t--){
int n;
cin>>n;
int x=0;
for(int i=1;i<=n/2;i++){
if(isprime(i) && isprime(n-i)){
x=i;
}
}
if(x==0) cout<<-1<<endl;
else{
for(int i=x+1;i<=n;i++){
cout<<i<<" ";
}
for(int i=1;i<=x;i++){
cout<<i<<" ";
}
cout<<endl;
}
}
return 0;
}
bool isprime(int n){
if (n==1) return false;
if(n==2||n==3) return true;
if(n%2==0 || n%3==0) return false;
for(int i=5;i*i<=n;i=i+6){
if(n%i==0 || n%(i+2)==0) return false;
}
return true;
}
Problem Link: PRIMEPERM Problem - CodeChef