Hello everyone!
I am getting WA with this code

Could someone plz give me a hint.
From the previous post I understood that anagrammatic primes are only in the range from 1 to 1000. Is that right?
However, here is my code:
#include<iostream>
#include<string>
#include<algorithm>
#include<cmath>
#include<stdio.h>
using namespace std;
bool is_prime(long long int result)
{
bool prime = true;
for(long long int i = 2;prime and i*i<=result; i++)
{
if(result%i==0)
prime = false;
}
return prime;
}
string to_string(long long int n)
{
string result="";
while(n/10!=0)
{
result+=(n%10) + '0';
n/=10;
}
result+=(n%10)+'0';
return result;
}
string reverse(string num)
{
string result="";
for(int i=num.size()-1; i>=0; i--)
result+=num[i];
return result;
}
long long int to_int(string num)
{
long long int result = 0;
int times = 1;
for(int i = num.size()-1; i>=0; i--)
{
result+=(num[i]-'0')*times;
times*=10;
}
return result;
}
bool check(string num)
{
bool result = true ;
long long int number = to_int(num);
result = is_prime(number);
for(int i = 0; i<num.size(); i++)
{
for(int j=1; result and j<num.size(); j++)
{
swap(num[j-1], num[j]);
number = to_int(num);
result = is_prime(number);
if(result==false)
goto stop;
}
}
stop:
return result;
}
int main()
{
long long int array[50];
array[0]=2; array[1]=3; array[2]=5; array[3]=7;
int a =4;
for(long long int i = 10; i<=1000; i++)
{
string string_num = to_string(i);
bool ok = check(string_num);
if(ok)
{
array[a]=i;
a++;
}
}
long long number;
while(cin>>number and number !=0)
{
if(number>1000)
cout<<0<<endl;
string broj = to_string(number);
double len = broj.size();
long long int power = static_cast<long long int>(pow(10, len));
bool go = true;
for(int g=0; go and g<a; g++)
{
if(array[g]>number and array[g]<power)
{
cout<<array[g]<<endl;
go = false;
}
}
}
}
Thanx!
