#include #define ll long long #define rep(i,x,y) for(i=x;i v,v1,v2; map mp; //GCD of two number using Euclidean Algorithm //Time Complexity=O(log(min(a,b)) ll gcd(ll a,ll b) { if(b==0) return a; else return gcd(b,a%b); } //a*b=gcd(a,b)*lcm(a,b) //Fastest Way of Finding LCM ll lcm(ll a,ll b) { return a*b/gcd(a,b); } //This is also funtion of finding prime numbers but time complexity //is more. //Time Complixity: O(n^3/2) bool isprime(int n) { if(n==1) return 0; if(n==2||n==3) return 1; if(n%2==0 || n%3==0) return 0; for(ll i=5; i*i<=n; i+=6) { if(n%i==0 || n%(i+2)==0) return 0; } return 1; } ll divisors(ll n) { ll i; rep(i,1,sqrt(n)) { if (n%i == 0) { // If divisors are equal, print only one if (n/i == i) cout<isprime(n+1,true ); { for(i=2; i<=n; i++) { if(isprime[i]) { cout<0) { if(m&1) ans*=n; n*=n; m=m>>1; } return ans; } int power(long long x, unsigned int y, int p) { int res = 1; // Initialize result x = x % p; // Update x if it is more than or // equal to p if (x == 0) return 0; // In case x is divisible by p; while (y > 0) { // If y is odd, multiply x with result if (y & 1) res = (res*x) % p; // y must be even now y = y>>1; // y = y/2 x = (x*x) % p; } return res; } bool sortbyth(const tuple& a, const tuple& b) { return (get<2>(a) < get<2>(b)); } ll sumofDigits(ll n) { if(n<0) n*=(-1); ll a1=0; ll a2=0; while(n>0) { a1+=n%10; n/=10; } return a1; } /**************** MAINCODE *************************/ int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> t; if(ceil((cbrt((float)t))==floor(cbrt((float)t)))) cout << "Yes\n"; else cout << "No\n"; return 0; }