import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		String ans = dfs(0, n) ? "Yes" : "No";
		System.out.println(ans);
		sc.close();
	}
	
	static boolean dfs(int sum, int n) {
		if (sum == n) return true;
		if (sum > n) return false;
		
		return dfs(sum + 4, n) || dfs(sum + 7, n);
	}
}

 import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		String ans = dfs(0, n) ? "Yes" : "No";
		System.out.println(ans);
		sc.close();
	}
	
	static boolean dfs(int sum, int n) {
		if (sum == n) return true;
		if (sum > n) return false;
		
		return dfs(sum + 4, n) || dfs(sum + 7, n);
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		String ans = dfs(0, n) ? "Yes" : "No";
		System.out.println(ans);
		sc.close();
	} main {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		String ans = dfs(0, n) ? "Yes" : "No";
		System.out.println(ans);
		sc.close();
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc String ans = dfs(0, n) ? "Yes" : "No"; ans dfs(0, n) ? "Yes" : "No" dfs(0, n) dfs 0 n "Yes" "No" System.out.println(ans) System.out.println System.out System System.out ans sc.close() sc.close sc String[] args args static boolean dfs(int sum, int n) {
		if (sum == n) return true;
		if (sum > n) return false;
		
		return dfs(sum + 4, n) || dfs(sum + 7, n);
	} dfs {
		if (sum == n) return true;
		if (sum > n) return false;
		
		return dfs(sum + 4, n) || dfs(sum + 7, n);
	} if (sum == n) return true; sum == n sum n return true; true if (sum > n) return false; sum > n sum n return false; false return dfs(sum + 4, n) || dfs(sum + 7, n); dfs(sum + 4, n) || dfs(sum + 7, n) dfs(sum + 4, n) dfs sum + 4 sum 4 n dfs(sum + 7, n) dfs sum + 7 sum 7 n int sum sum int n n public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		String ans = dfs(0, n) ? "Yes" : "No";
		System.out.println(ans);
		sc.close();
	}
	
	static boolean dfs(int sum, int n) {
		if (sum == n) return true;
		if (sum > n) return false;
		
		return dfs(sum + 4, n) || dfs(sum + 7, n);
	}
} public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		String ans = dfs(0, n) ? "Yes" : "No";
		System.out.println(ans);
		sc.close();
	}
	
	static boolean dfs(int sum, int n) {
		if (sum == n) return true;
		if (sum > n) return false;
		
		return dfs(sum + 4, n) || dfs(sum + 7, n);
	}
} Main
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		String ans = dfs(0, n) ? "Yes" : "No";
		System.out.println(ans);
		sc.close();
	}
	
	static boolean dfs(int sum, int n) {
		if (sum == n) return true;
		if (sum > n) return false;
		
		return dfs(sum + 4, n) || dfs(sum + 7, n);
	}
}


