import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.util.StringTokenizer; 
import java.util.*;
  
public class Main {  
	static Map<List<Integer>, Integer> dp;
	static int n;
	static int min = Integer.MAX_VALUE;
    public static void main(String[] args) throws IOException { 
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
		StringTokenizer st = new StringTokenizer(br.readLine()); 
		//int k = Integer.parseInt(st.nextToken());
		int n = Integer.parseInt(st.nextToken());
		int s = 0;
		int x = n;
		while (x > 0) {
			s += x % 10;
			x /= 10;
		}
		if (n % s == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.StringTokenizer; StringTokenizer java.util import java.util.*; util.* java public class Main {  
	static Map<List<Integer>, Integer> dp;
	static int n;
	static int min = Integer.MAX_VALUE;
    public static void main(String[] args) throws IOException { 
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
		StringTokenizer st = new StringTokenizer(br.readLine()); 
		//int k = Integer.parseInt(st.nextToken());
		int n = Integer.parseInt(st.nextToken());
		int s = 0;
		int x = n;
		while (x > 0) {
			s += x % 10;
			x /= 10;
		}
		if (n % s == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}
	}
} Main static Map<List<Integer>, Integer> dp; dp static int n; n static int min = Integer.MAX_VALUE; min Integer.MAX_VALUE Integer Integer.MAX_VALUE public static void main(String[] args) throws IOException { 
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
		StringTokenizer st = new StringTokenizer(br.readLine()); 
		//int k = Integer.parseInt(st.nextToken());
		int n = Integer.parseInt(st.nextToken());
		int s = 0;
		int x = n;
		while (x > 0) {
			s += x % 10;
			x /= 10;
		}
		if (n % s == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}
	} main { 
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
		StringTokenizer st = new StringTokenizer(br.readLine()); 
		//int k = Integer.parseInt(st.nextToken());
		int n = Integer.parseInt(st.nextToken());
		int s = 0;
		int x = n;
		while (x > 0) {
			s += x % 10;
			x /= 10;
		}
		if (n % s == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}
	} BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) StringTokenizer st = new StringTokenizer(br.readLine()); st new StringTokenizer(br.readLine()) int n = Integer.parseInt(st.nextToken()); n Integer.parseInt(st.nextToken()) Integer.parseInt Integer st.nextToken() st.nextToken st int s = 0; s 0 int x = n; x n while (x > 0) {
			s += x % 10;
			x /= 10;
		} x > 0 x 0 {
			s += x % 10;
			x /= 10;
		} s += x % 10 s x % 10 x 10 x /= 10 x 10 if (n % s == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		} n % s == 0 n % s n s 0 {
			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 {  
	static Map<List<Integer>, Integer> dp;
	static int n;
	static int min = Integer.MAX_VALUE;
    public static void main(String[] args) throws IOException { 
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
		StringTokenizer st = new StringTokenizer(br.readLine()); 
		//int k = Integer.parseInt(st.nextToken());
		int n = Integer.parseInt(st.nextToken());
		int s = 0;
		int x = n;
		while (x > 0) {
			s += x % 10;
			x /= 10;
		}
		if (n % s == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}
	}
} public class Main {  
	static Map<List<Integer>, Integer> dp;
	static int n;
	static int min = Integer.MAX_VALUE;
    public static void main(String[] args) throws IOException { 
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
		StringTokenizer st = new StringTokenizer(br.readLine()); 
		//int k = Integer.parseInt(st.nextToken());
		int n = Integer.parseInt(st.nextToken());
		int s = 0;
		int x = n;
		while (x > 0) {
			s += x % 10;
			x /= 10;
		}
		if (n % s == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}
	}
} Main
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.util.StringTokenizer; 
import java.util.*;
  
public class Main {  
	static Map<List<Integer>, Integer> dp;
	static int n;
	static int min = Integer.MAX_VALUE;
    public static void main(String[] args) throws IOException { 
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
		StringTokenizer st = new StringTokenizer(br.readLine()); 
		//int k = Integer.parseInt(st.nextToken());
		int n = Integer.parseInt(st.nextToken());
		int s = 0;
		int x = n;
		while (x > 0) {
			s += x % 10;
			x /= 10;
		}
		if (n % s == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}
	}
}