/*
平方根が少数のときに気をつける
*/

import java.util.*;

public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    String a = sc.next();
    String b = sc.next();
    int target = Integer.parseInt(a + b);
    boolean flag = false;

    //デバッグ
    //System.out.println(target);
    for(double i = 1; i <= Math.sqrt(target); i++){
      if((double)target / i == i){
        flag = true;
        /*System.out.println(target / i);
        System.out.println(i);*/
        break;
      }
    }

    if(flag){System.out.println("Yes");}
    else{System.out.println("No");}
  }
}

/*
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String blank = sc.nextLine();
String s = sc.nextLine();
System.out.println();
System.exit(0)
*/ import java.util.*; util.* java public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    String a = sc.next();
    String b = sc.next();
    int target = Integer.parseInt(a + b);
    boolean flag = false;

    //デバッグ
    //System.out.println(target);
    for(double i = 1; i <= Math.sqrt(target); i++){
      if((double)target / i == i){
        flag = true;
        /*System.out.println(target / i);
        System.out.println(i);*/
        break;
      }
    }

    if(flag){System.out.println("Yes");}
    else{System.out.println("No");}
  }
} Main public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    String a = sc.next();
    String b = sc.next();
    int target = Integer.parseInt(a + b);
    boolean flag = false;

    //デバッグ
    //System.out.println(target);
    for(double i = 1; i <= Math.sqrt(target); i++){
      if((double)target / i == i){
        flag = true;
        /*System.out.println(target / i);
        System.out.println(i);*/
        break;
      }
    }

    if(flag){System.out.println("Yes");}
    else{System.out.println("No");}
  } main {
    Scanner sc = new Scanner(System.in);
    String a = sc.next();
    String b = sc.next();
    int target = Integer.parseInt(a + b);
    boolean flag = false;

    //デバッグ
    //System.out.println(target);
    for(double i = 1; i <= Math.sqrt(target); i++){
      if((double)target / i == i){
        flag = true;
        /*System.out.println(target / i);
        System.out.println(i);*/
        break;
      }
    }

    if(flag){System.out.println("Yes");}
    else{System.out.println("No");}
  } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String a = sc.next(); a sc.next() sc.next sc String b = sc.next(); b sc.next() sc.next sc int target = Integer.parseInt(a + b); target Integer.parseInt(a + b) Integer.parseInt Integer a + b a b boolean flag = false; flag false for(double i = 1; i <= Math.sqrt(target); i++){
      if((double)target / i == i){
        flag = true;
        /*System.out.println(target / i);
        System.out.println(i);*/
        break;
      }
    } double i = 1; double i = 1; i 1 i <= Math.sqrt(target) i Math.sqrt(target) Math.sqrt Math target i++ i++ i {
      if((double)target / i == i){
        flag = true;
        /*System.out.println(target / i);
        System.out.println(i);*/
        break;
      }
    } {
      if((double)target / i == i){
        flag = true;
        /*System.out.println(target / i);
        System.out.println(i);*/
        break;
      }
    } if((double)target / i == i){
        flag = true;
        /*System.out.println(target / i);
        System.out.println(i);*/
        break;
      } (double)target / i == i (double)target / i (double)target i i {
        flag = true;
        /*System.out.println(target / i);
        System.out.println(i);*/
        break;
      } flag = true flag true break; if(flag){System.out.println("Yes");}
    else{System.out.println("No");} flag {System.out.println("Yes");} System.out.println("Yes") System.out.println System.out System System.out "Yes" {System.out.println("No");} System.out.println("No") System.out.println System.out System System.out "No" String[] args args public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    String a = sc.next();
    String b = sc.next();
    int target = Integer.parseInt(a + b);
    boolean flag = false;

    //デバッグ
    //System.out.println(target);
    for(double i = 1; i <= Math.sqrt(target); i++){
      if((double)target / i == i){
        flag = true;
        /*System.out.println(target / i);
        System.out.println(i);*/
        break;
      }
    }

    if(flag){System.out.println("Yes");}
    else{System.out.println("No");}
  }
} public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    String a = sc.next();
    String b = sc.next();
    int target = Integer.parseInt(a + b);
    boolean flag = false;

    //デバッグ
    //System.out.println(target);
    for(double i = 1; i <= Math.sqrt(target); i++){
      if((double)target / i == i){
        flag = true;
        /*System.out.println(target / i);
        System.out.println(i);*/
        break;
      }
    }

    if(flag){System.out.println("Yes");}
    else{System.out.println("No");}
  }
} Main
/*
平方根が少数のときに気をつける
*/

import java.util.*;

public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    String a = sc.next();
    String b = sc.next();
    int target = Integer.parseInt(a + b);
    boolean flag = false;

    //デバッグ
    //System.out.println(target);
    for(double i = 1; i <= Math.sqrt(target); i++){
      if((double)target / i == i){
        flag = true;
        /*System.out.println(target / i);
        System.out.println(i);*/
        break;
      }
    }

    if(flag){System.out.println("Yes");}
    else{System.out.println("No");}
  }
}

/*
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String blank = sc.nextLine();
String s = sc.nextLine();
System.out.println();
System.exit(0)
*/
