Language: C

# -*- coding: utf-8 -*-
import sys
import math
from bisect import bisect_left
from bisect import bisect_right
import collections
import copy
import heapq
from collections import defaultdict
from heapq import heappop, heappush
import itertools
input = sys.stdin.readline
from collections import defaultdict
from heapq import heappop, heappush

from decimal import *

##### リストの 二分木検索 #####
# bisect_left(lists, 3)
# bisect_right(lists, 3)

##### プライオリティキュー #####
# heapq.heapify(a) #リストaのheap化
# heapq.heappush(a,x) #heap化されたリストaに要素xを追加
# heapq.heappop(a) #heap化されたリストaから最小値を削除＆その最小値を出力

# heapq.heappush(a, -x) #最大値を取り出す時は、pushする時にマイナスにして入れよう
# heapq.heappop(a) * (-1) #取り出す時は、-1を掛けて取り出すこと

##### タプルリストのソート #####
# sorted(ans) #(a, b) -> 1st : aの昇順, 2nd : bの昇順
# sorted(SP, key=lambda x:(x[0],-x[1])) #(a, b) -> 1st : aの昇順, 2nd : bの降順
# sorted(SP, key=lambda x:(-x[0],x[1])) #(a, b) -> 1st : aの降順, 2nd : bの昇順
# sorted(SP, key=lambda x:(-x[0],-x[1])) #(a, b) -> 1st : aの降順, 2nd : bの降順

# sorted(SP, key=lambda x:(x[1])) #(a, b) -> 1st : bの昇順
# sorted(SP, key=lambda x:(-x[1])) #(a, b) -> 1st : bの降順

##### 累乗 #####
# pow(x, y, z) -> x**y % z

def inputInt(): return int(input())
def inputMap(): return map(int, input().split())
def inputList(): return list(map(int, input().split()))

inf = float('inf')
mod = 1000000007

#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

def main():
	N = inputInt()
	s = str(N)

	if s[0] == "7" or s[1] == "7" or s[2] == "7":
		print("Yes")
	else:
		print("No")

	#print(N)



#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
# special thanks :
#  https://nagiss.hateblo.jp/entry/2019/07/01/185421
#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
class Graph(object):
    """
    隣接リストによる有向グラフ
    """

    def __init__(self):
        self.graph = defaultdict(list)

    def __len__(self):
        return len(self.graph)

    def add_edge(self, src, dst, weight=1):
        self.graph[src].append((dst, weight))

    def get_nodes(self):
        return self.graph.keys()


class Dijkstra(object):
    """
    ダイクストラ法（二分ヒープ）による最短経路探索
    計算量: O((E+V)logV)
    """

    def __init__(self, graph, start):
        self.g = graph.graph

        # startノードからの最短距離
        # startノードは0, それ以外は無限大で初期化
        self.dist = defaultdict(lambda: float('inf'))
        self.dist[start] = 0

        # 最短経路での1つ前のノード
        self.prev = defaultdict(lambda: None)

        # startノードをキューに入れる
        self.Q = []
        heappush(self.Q, (self.dist[start], start))

        while self.Q:
            # 優先度（距離）が最小であるキューを取り出す
            dist_u, u = heappop(self.Q)
            if self.dist[u] < dist_u:
                continue
            for v, weight in self.g[u]:
                alt = dist_u + weight
                if self.dist[v] > alt:
                    self.dist[v] = alt
                    self.prev[v] = u
                    heappush(self.Q, (alt, v))

    def shortest_distance(self, goal):
        """
        startノードからgoalノードまでの最短距離
        """
        return self.dist[goal]

    def shortest_path(self, goal):
        """
        startノードからgoalノードまでの最短経路
        """
        path = []
        node = goal
        while node is not None:
            path.append(node)
            node = self.prev[node]
        return path[::-1]

def int_sqrt2(n):
    def f(prev):
        while True:
            m = (prev + n / prev) / 2
            if m >= prev:
                return prev
            prev = m

    return f(int(math.sqrt(n) * (1 + 1e-10)))

# nCr mod m
# rがn/2に近いと非常に重くなる
def combination(n, r, mod=10**9+7):
    r = min(r, n-r)
    res = 1
    for i in range(r):
        res = res * (n - i) * modinv(i+1, mod) % mod
    return res

# mを法とするaの乗法的逆元
def modinv(a, mod=10**9+7):
    return pow(a, mod-2, mod)

def egcd(a, b):
    if a == 0:
        return b, 0, 1
    else:
        g, y, x = egcd(b % a, a)
        return g, x - (b // a) * y, y

# nHr mod m
# 問題によって、combination()を切り替えること
def H(n, r, mod=10**9+7):
	# comb = Combination(n+r-1, mod)
	# return comb(n+r-1, r)
    return combination(n+r-1, r, mod)

class Combination:
    """
    O(n)の前計算を1回行うことで，O(1)でnCr mod mを求められる
    n_max = 10**6のとき前処理は約950ms (PyPyなら約340ms, 10**7で約1800ms)
    使用例：
    comb = Combination(1000000)
    print(comb(5, 3))  # 10
    """
    def __init__(self, n_max, mod=10**9+7):
        self.mod = mod
        self.modinv = self.make_modinv_list(n_max)
        self.fac, self.facinv = self.make_factorial_list(n_max)

    def __call__(self, n, r):
        return self.fac[n] * self.facinv[r] % self.mod * self.facinv[n-r] % self.mod

    def make_factorial_list(self, n):
        # 階乗のリストと階乗のmod逆元のリストを返す O(n)
        # self.make_modinv_list()が先に実行されている必要がある
        fac = [1]
        facinv = [1]
        for i in range(1, n+1):
            fac.append(fac[i-1] * i % self.mod)
            facinv.append(facinv[i-1] * self.modinv[i] % self.mod)
        return fac, facinv

    def make_modinv_list(self, n):
        # 0からnまでのmod逆元のリストを返す O(n)
        modinv = [0] * (n+1)
        modinv[1] = 1
        for i in range(2, n+1):
            modinv[i] = self.mod - self.mod//i * modinv[self.mod%i] % self.mod
        return modinv

if __name__ == "__main__":
	main()


Compiler output:
main.c:1:3: error: invalid preprocessing directive #-
    1 | # -*- coding: utf-8 -*-
      |   ^
main.c:2:1: error: unknown type name 'import'
    2 | import sys
      | ^~~~~~
main.c:3:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'import'
    3 | import math
      | ^~~~~~
main.c:3:1: error: unknown type name 'import'
main.c:18:1: error: stray '##' in program
   18 | ##### リストの 二分木検索 #####
      | ^~
main.c:18:3: error: stray '##' in program
   18 | ##### リストの 二分木検索 #####
      |   ^~
main.c:18:5: error: stray '#' in program
   18 | ##### リストの 二分木検索 #####
      |     ^
main.c:18:27: error: stray '##' in program
   18 | ##### リストの 二分木検索 #####
      |                           ^~
main.c:18:29: error: stray '##' in program
   18 | ##### リストの 二分木検索 #####
      |                             ^~
main.c:18:31: error: stray '#' in program
   18 | ##### リストの 二分木検索 #####
      |                               ^
main.c:19:3: error: invalid preprocessing directive #bisect_left
   19 | # bisect_left(lists, 3)
      |   ^~~~~~~~~~~
main.c:20:3: error: invalid preprocessing directive #bisect_right
   20 | # bisect_right(lists, 3)
      |   ^~~~~~~~~~~~
main.c:22:1: error: stray '##' in program
   22 | ##### プライオリティキュー #####
      | ^~
main.c:22:3: error: stray '##' in program
   22 | ##### プライオリティキュー #####
      |   ^~
main.c:22:5: error: stray '#' in program
   22 | ##### プライオリティキュー #####
      |     ^
main.c:22:28: error: stray '##' in program
   22 | ##### プライオリティキュー #####
      |                            ^~
main.c:22:30: error: stray '##' in program
   22 | ##### プライオリティキュー #####
      |                              ^~
main.c:22:32: error: stray '#' in program
   22 | ##### プライオリティキュー #####
      |                                ^
main.c:23:3: error: invalid preprocessing directive #heapq
   23 | # heapq.heapify(a) #リストaのheap化
      |   ^~~~~
main.c:24:3: error: invalid preprocessing directive #heapq
   24 | # heapq.heappush(a,x) #heap化されたリストaに要素xを追加
      |   ^~~~~
main.c:25:3: error: invalid preprocessing directive #heapq
   25 | # heapq.heappop(a) #heap化されたリストaから最小値を削除＆その最小値を出力
      |   ^~~~~
main.c:27:3: error: invalid preprocessing directive #heapq
   27 | # heapq.heappush(a, -x) #最大値を取り出す時は、pushする時にマイナスにして入れよう
      |   ^~~~~
main.c:28:3: error: invalid preprocessing directive #heapq
   28 | # heapq.heappop(a) * (-1) #取り出す時は、-1を掛けて取り出すこと
      |   ^~~~~
main.c:30:1: error: stray '##' in program
   30 | ##### タプルリストのソート #####
      | ^~
main.c:30:3: error: stray '##' in program
   30 | ##### タプルリストのソート #####
      |   ^~
main.c:30:5: error: stray '#' in program
   30 | ##### タプルリストのソート #####
      |     ^
main.c:30:28: error: stray '##' in program
   30 | ##### タプルリストのソート #####
      |                            ^~
main.c:30:30: error: stray '##' in program
   30 | ##### タプルリストのソート #####
      |                              ^~
main.c:30:32: error: stray '#' in program
   30 | ##### タプルリストのソート #####
      |                                ^
main.c:31:3: error: invalid preprocessing directive #sorted
   31 | # sorted(ans) #(a, b) -> 1st : aの昇順, 2nd : bの昇順
      |   ^~~~~~
main.c:32:3: error: invalid preprocessing directive #sorted
   32 | # sorted(SP, key=lambda x:(x[0],-x[1])) #(a, b) -> 1st : aの昇順, 2nd : bの降順
      |   ^~~~~~
main.c:33:3: error: invalid preprocessing directive #sorted
   33 | # sorted(SP, key=lambda x:(-x[0],x[1])) #(a, b) -> 1st : aの降順, 2nd : bの昇順
      |   ^~~~~~
main.c:34:3: error: invalid preprocessing directive #sorted
   34 | # sorted(SP, key=lambda x:(-x[0],-x[1])) #(a, b) -> 1st : aの降順, 2nd : bの降順
      |   ^~~~~~
main.c:36:3: error: invalid preprocessing directive #sorted
   36 | # sorted(SP, key=lambda x:(x[1])) #(a, b) -> 1st : bの昇順
      |   ^~~~~~
main.c:37:3: error: invalid preprocessing directive #sorted
   37 | # sorted(SP, key=lambda x:(-x[1])) #(a, b) -> 1st : bの降順
      |   ^~~~~~
main.c:39:1: error: stray '##' in program
   39 | ##### 累乗 #####
      | ^~
main.c:39:3: error: stray '##' in program
   39 | ##### 累乗 #####
      |   ^~
main.c:39:5: error: stray '#' in program
   39 | ##### 累乗 #####
      |     ^
main.c:39:12: error: stray '##' in program
   39 | ##### 累乗 #####
      |            ^~
main.c:39:14: error: stray '##' in program
   39 | ##### 累乗 #####
      |              ^~
main.c:39:16: error: stray '#' in program
   39 | ##### 累乗 #####
      |                ^
main.c:40:3: error: invalid preprocessing directive #pow
   40 | # pow(x, y, z) -> x**y % z
      |   ^~~
main.c:46:13: warning: multi-character character constant [-Wmultichar]
   46 | inf = float('inf')
      |             ^~~~~
main.c:49:2: error: invalid preprocessing directive #-
   49 | #-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
      |  ^
main.c:50:2: error: invalid preprocessing directive #-
   50 | #-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
      |  ^
main.c:61:10: error: invalid preprocessing directive #print
   61 |         #print(N)
      |          ^~~~~
main.c:65:2: error: invalid preprocessing directive #-
   65 | #-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
      |  ^
main.c:66:2: error: invalid preprocessing directive #-
   66 | #-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
      |  ^
main.c:67:3: error: invalid preprocessing directive #special
   67 | # special thanks :
      |   ^~~~~~~
main.c:68:4: error: invalid preprocessing directive #https
   68 | #  https://nagiss.hateblo.jp/entry/2019/07/01/185421
      |    ^~~~~
main.c:69:2: error: invalid preprocessing directive #-
   69 | #-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
      |  ^
main.c:71:7: warning: missing terminating " character
   71 |     """
      |       ^
main.c:71:7: error: missing terminating " character
main.c:73:7: warning: missing terminating " character
   73 |     """
      |       ^
main.c:73:7: error: missing terminating " character
main.c:89:7: warning: missing terminating " character
   89 |     """
      |       ^
main.c:89:7: error: missing terminating " character
main.c:92:7: warning: missing terminating " character
   92 |     """
      |       ^
main.c:92:7: error: missing terminating " character
main.c:97:11: error: invalid preprocessing directive #start\U000030ce\U000030fc\U000030c9\U0000304b\U00003089\U0000306e\U00006700\U000077ed\U00008ddd\U000096e2
   97 |         # startノードからの最短距離
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~
main.c:98:11: error: invalid preprocessing directive #start\U000030ce\U000030fc\U000030c9\U0000306f0
   98 |         # startノードは0, それ以外は無限大で初期化
      |           ^~~~~~~~~~~~~~
main.c:99:47: warning: multi-character character constant [-Wmultichar]
   99 |         self.dist = defaultdict(lambda: float('inf'))
      |                                               ^~~~~
main.c:102:11: error: invalid preprocessing directive #\U00006700\U000077ed\U00007d4c\U00008def\U00003067\U0000306e1\U00003064\U0000524d\U0000306e\U000030ce\U000030fc\U000030c9
  102 |         # 最短経路での1つ前のノード
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~
main.c:105:11: error: invalid preprocessing directive #start\U000030ce\U000030fc\U000030c9\U00003092\U000030ad\U000030e5\U000030fc\U0000306b\U00005165\U0000308c\U0000308b
  105 |         # startノードをキューに入れる
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:110:15: error: invalid preprocessing directive #\U0000512a\U00005148\U00005ea6\U0000ff08\U00008ddd\U000096e2\U0000ff09\U0000304c\U00006700\U00005c0f\U00003067\U00003042\U0000308b\U000030ad\U000030e5\U000030fc\U00003092\U000053d6\U0000308a\U000051fa\U00003059
  110 |             # 優先度（距離）が最小であるキューを取り出す
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:122:11: warning: missing terminating " character
  122 |         """
      |           ^
main.c:122:11: error: missing terminating " character
main.c:124:11: warning: missing terminating " character
  124 |         """
      |           ^
main.c:124:11: error: missing terminating " character
main.c:128:11: warning: missing terminating " character
  128 |         """
      |           ^
main.c:128:11: error: missing terminating " character
main.c:130:11: warning: missing terminating " character
  130 |         """
      |           ^
main.c:130:11: error: missing terminating " character
main.c:148:3: error: invalid preprocessing directive #nCr
  148 | # nCr mod m
      |   ^~~
main.c:149:3: error: invalid preprocessing directive #r\U0000304cn
  149 | # rがn/2に近いと非常に重くなる
      |   ^~~~
main.c:157:3: error: invalid preprocessing directive #m\U00003092\U00006cd5\U00003068\U00003059\U0000308ba\U0000306e\U00004e57\U00006cd5\U00007684\U00009006\U00005143
  157 | # mを法とするaの乗法的逆元
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
main.c:168:3: error: invalid preprocessing directive #nHr
  168 | # nHr mod m
      |   ^~~
main.c:169:3: error: invalid preprocessing directive #\U0000554f\U0000984c\U0000306b\U00003088\U00003063\U00003066
  169 | # 問題によって、combination()を切り替えること
      |   ^~~~~~~~~~~~
main.c:171:11: error: invalid preprocessing directive #comb
  171 |         # comb = Combination(n+r-1, mod)
      |           ^~~~
main.c:172:11: error: invalid preprocessing directive #return
  172 |         # return comb(n+r-1, r)
      |           ^~~~~~
main.c:176:7: warning: missing terminating " character
  176 |     """
      |       ^
main.c:176:7: error: missing terminating " character
main.c:178:17: error: invalid suff