SRM303 div2 hard

「やるだけ=バグ死」の敗北の方程式を何とかしたい
…で、やるだけ。全探索で間に合う。

#include <string>
#include <algorithm>
#include <sstream>
#include <vector>

#include <iostream>

using namespace std;

class PrimePalindromic
{
	public:
		int count(int A, int B)
		{
			int ans=0;
			for(int num=A;num<=B;num++)
			{
				int n=num;
				vector<string> vs;
				while(1<n)
				{
					int a;
					for(a=2;a*a<=n;a++)
						if(n%a==0)
							break;
					if(n<a*a)
						a=n;
					stringstream ss;
					ss << a;
					vs.push_back(ss.str());
					n/=a;
				}
				
				sort(vs.begin(),vs.end());

				bool pal=false;
				do{
					string s,t;
					for(int i=0;i<(int)vs.size();i++)
						s+=vs[i];
					t=s;
					reverse(t.begin(),t.end());
					
					if(s==t)
					{
						pal=true;
						break;
					}
				}while(next_permutation(vs.begin(),vs.end()));

				if(pal)
					ans++;
			}

			return ans;
		}
};