#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // C++ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // #include // #include #define rep(i,j,k) for(int i=(int)j;i<(int)k;i++) #define ll long long #define Sort(v) sort(all(v)) //#define INF 1e9 #define LINF 1e18 #define END return 0 #define pb push_back #define se second #define fi first #define pb push_back #define all(v) (v).begin() , (v).end() #define MP make_pair #define int long long using namespace std; int day[12]={31,28,31,30,31,30,31,31,30,31,30,31}; // int dx[]={0,1,0,-1}; // int dy[]={1,0,-1,0}; struct edge{int to,cost;}; //typedef pair P; const long long MOD=1000000007LL; bool isupper(char c){if('A'<=c&&c<='Z')return 1;return 0;} bool islower(char c){if('a'<=c&&c<='z')return 1;return 0;} bool isPrime(int x){if(x==1)return 0;if(x==2)return 1;if(x%2==0)return 0;for(int i=3;i*i<=x;i++)if(x%i==0)return 0;return 1;} bool iskaibun(string s){for(int i=0;i void print(vector v){ for(int i=0;i void printendl(vector v){ for(auto date:v)cout< void printvv(vector> v){ for(int i=0;i>n; vector v(5*1e5,1); v[0]=0; v[1]=0; rep(i,2,v.size()){ if(v[i]==0)continue; for(int j=i*2;j prime; rep(i,0,n+1){ if(v[i])prime.push_back(i); } //print(prime); int ans=0; rep(i,0,prime.size()){ rep(j,i,prime.size()){ if(i>n or j>n)continue; int r=prime[i]+prime[j]; int sr=sqrt(r); if(sr>n)continue; if(v[sr] and sr*sr==r){ if(i!=j)ans+=2; else ans++; //cout<