peterverebics/CodeNet_Python_118 huggingface dataset:
N=int(input())
count = 0
def make_divisors(n):
    divisors = []
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n//i)

    # divisors.sort()　#小さい順位欲しいとき
    return divisors
for i in range(1,N+1):
    if len(make_divisors(i))==8 and i%2==1:
        count += 1
print(count)
_=int(input());print(sum(ord(x)<_ for x in "h¤¼Â"))
N = int(input())
count_1 = 0
for i in range(1,N+1,2):
  count_2 = 0
  for j in range(1,i+1,2):
    if i % j == 0:
      count_2 += 1
  if count_2 == 8:
    count_1 += 1
print(count_1)
n = int(input())

c = 0
for i in range(1,n+1):
    cc = 0
    if i % 2 == 1:
        for j in range(1,i+1):
            if i % j == 0:
                cc += 1
        if cc == 8:
            c += 1

print(c)
N=int(input())
[3,5,7,11,13]
A=[105,135,165,189,195]
ans=0
for i in A:
  if i <=N:
    ans+=1
print(ans)
#!/usr/bin/env python3

n = int(input())


ans = 0
for i in range(1, n+1):
    if i % 2 == 0:
        continue
    tmp = 0
    for j in range(1, i+1):
        if i % j == 0:
            tmp += 1
    if tmp == 8:
        ans += 1

print(ans)
def have_eight_divisor_odd(n):
    have_eight_divisor_odd_count = 0
    for i in range(1, n+1):
        count = 0
        if i % 2 == 1:
            for j in range(1, i+1):
                if i % j == 0:
                    count += 1
        if count == 8:
            have_eight_divisor_odd_count += 1
    return have_eight_divisor_odd_count

N = int(input())
result = have_eight_divisor_odd(N)
print(result)
def make_divisors(n):
    ans=0
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            ans+=1
            if i != n // i:
                ans+=1
    return ans

n=int(input())
a=0
for i in range(1,n+1,2):
    if make_divisors(i)==8:
        a+=1
print(a)
print(sum(1 for i in range(1, int(input()) + 1) if i % 2 == 1 and sum(1 for j in range(1, i + 1) if i % j == 0) == 8))
N=int(input())
ans=0
for i in range(1,N+1,2):
  count=0
  for j in range(1,i+1):
    if i%j==0:
      count+=1
  if count==8:
    ans+=1
print(ans)
n = int(input())
cnt = 0
for i in range(1, n + 1,2):
    temp = 0
    j = 1
    while j * j <= i:
        if i % j == 0:
            temp += 1
            if j != i // j:
                temp += 1
        j += 1
    if temp == 8:
        cnt += 1
print(cnt)
if __name__ == '__main__':
	n = int(input())

	cnt = 0
	ans = 0
	for x in range(1,n+1,2):
		cnt = 0
		for y in range(1,x+1):
			if x % y == 0:
				cnt += 1
		if cnt == 8:
			ans += 1

	print(ans)
n = int(input())
ans = 0
for i in range(1,n + 1):
  if i % 2 == 0:
    continue
  cnt = 0
  for j in range(1,i + 1):
    if i % j == 0:
      cnt += 1
  if cnt == 8:
    ans += 1
print(ans)
n=int(input())

a=0

for i in range(1,n+1,2):
  c=0
  for j in range(1,i+1):
    if i%j==0:
      c+=1
  if c==8:
    a+=1

print(a)
def div(N):
    div = set()
    for i in range(1, int(N ** 0.5 + 0.5) + 1):
        if N % i == 0:
            div.add(i)
            div.add(N // i)
    return len(div)


N = int(input())
ans = 0
for x in range(1, N + 1, 2):
    if div(x) == 8:
        ans += 1
print(ans)
n = int(input())

ans = 0
for i in range(1, n + 1):
    if i % 2 == 0:
        continue
    dividors = []
    for j in range(1, n + 1):
        if i % j == 0:
            dividors.append(j)
    if len(dividors) == 8:
        ans += 1
print(ans)
n = int(input())
ans = 0
for i in range(1, n+1, 2):
    cnt = 0
    for j in range(1, i+1):
        if i % j == 0:
            cnt += 1
    if cnt == 8:
        ans += 1
print(ans)
def make_divisors(n):
    divisors=[]
    for i in range(1,int(n**0.5)+1):
        if n%i==0:
            divisors.append(i)
            if i!=n//i:
                divisors.append(n//i)
    return divisors

N = int(input())
count = 0
for i in range(1,N+1,2):
    if len(make_divisors(i)) == 8:
        count += 1

print(count)
def abc106b_105():
    n = int(input())
    cnt = 0
    for i in range(1, n + 1):
        if i % 2 == 0: continue
        yaku_cnt = 0
        for j in range(1, i + 1):
            if i % j == 0:
                yaku_cnt += 1
        if yaku_cnt == 8:
            cnt += 1

    print(cnt)


abc106b_105()
import bisect,collections,copy,heapq,itertools,math,string
import sys
def I(): return int(sys.stdin.readline().rstrip())
def LI(): return list(map(int,sys.stdin.readline().rstrip().split()))
def S(): return sys.stdin.readline().rstrip()
def LS(): return list(sys.stdin.readline().rstrip().split())

n = I()
cnt = 0
for i in range(1, n+1, 2):
    divcnt = 0
    for j in range(1, i+1, 2):
        if i % j == 0:
            divcnt += 1
    if divcnt == 8:
        cnt += 1
print(cnt)
n = int(input())

if n >= 195:
  print(5)
elif n >= 189:
  print(4)
elif n >= 165:
  print(3)
elif n >= 135:
  print(2)
elif n >= 105:
  print(1)
else:
  print(0)
def make_divisors(n):
    divisors = []
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n//i)

    divisors.sort()
    return divisors
n=int(input())
if n<105:
    print(0)
    exit()
ans=1
for i in range(106,n+1):
    if i%2==0:
        continue
    l=make_divisors(i)
    if len(l)==8:
        ans+=1
print(ans)
N = int(input())

ans = 0
for i in range(1, N + 1):
    cnt = 0
    for j in range(1, i + 1):
        if i % j == 0:
            cnt += 1
    if cnt == 8 and i % 2 != 0:
        ans += 1
print(ans)
n=int(input())

def divisore(n):
    divisors=[]
    for i in range(1,int(n**0.5)+1):
        if n%i==0:
            divisors.append(i)
            if i!=n//i:
                divisors.append(n//i)
    return divisors

cnt=0
for i in range(1,n+1,2):
  l=divisore(i)
  if len(l)==8:
    cnt+=1
print(cnt)
N = int(input())

ans=0
for _ in range(1,N+1,2):
    eight=0
    for i in range(1,N+1):
        if _ % i ==0:
            eight +=1
    
    if eight == 8:
        ans+=1
        

print(ans)
n = int(input())
ans = 0
for i in range(1, n+1):
    count = 0
    for j in range(1, i+1):
        if i % j == 0:
            count += 1
    if count == 8 and i%2 != 0:
        ans += 1
print(ans)
def yakusu(num):
    x=num
    count=0
    i=0
    while (i<num):
        i+=1
        if (num%i==0):
            num=num/i
            count+=2
            if (num**2==x):
                count-=1
    return count

n=int(input())
ans=0
for j in range(1,n+1,2):
    if (yakusu(j)==8):
        ans+=1
print(ans)
n = int(input())
ans = 0
for x in range(1, n + 1, 2):
    d = 0
    for i in range(1, x + 1, 2):
        if x % i == 0:
            d += 1
    if d == 8:
        ans += 1
print(ans)
n = int(input())
cnt = 0
for i in range(105,n+1,2):
    cnt2 = 0
    for j in range(3,i,2):
        if i % j == 0:
            cnt2 += 1
    if cnt2 == 6:
        cnt += 1
print (cnt)
n=int(input())
cnt=0
i=1
while i<=n:
  c=0
  for j in range(1,i+1):
    if i%j==0:
      c+=1
  if c==8:
    cnt+=1
  i+=2
print(cnt)
import sys
n=int(input())
num=1
ans=0
while num<=n:
  count=0
  for i in range(num):
    i+=1
    if num%i == 0: count+=1
  if count == 8: ans+=1
  num+=2
print(ans)
def check(k):
    cnt = 0
    for i in range(1, k + 1):
        if k % i == 0:
            cnt += 1
    if cnt == 8:return 1
    else:return 0

n = int(input())
pre = [0] * n

for i in range(n):
    if i % 2 == 1:
        pre[i] = pre[i - 1]
    else:
        temp = check(i + 1)
        pre[i] = pre[i - 1] + temp
print(pre[n - 1])
n=int(input())
ans=0
for i in range(1,n+1,2):
    cnt=0
    for j in range(1,i+1):
        if i%j == 0:
            cnt += 1
    if cnt == 8:
        ans += 1
print(ans)
def make_divisors(n):
    lower_divisors , upper_divisors = [], []
    i = 1
    while i*i <= n:
        if n % i == 0:
            lower_divisors.append(i)
            if i != n // i:
                upper_divisors.append(n//i)
        i += 1
    return lower_divisors + upper_divisors[::-1]

n = int(input())
print(len(list(filter(lambda x: len(make_divisors(x)) == 8, range(1, n + 1,2)))))
n = int(input())
ans = 0
for i in range(1, n + 1, 2):
    divisor = 0
    for j in range(1, i + 1, 2):
        if i % j == 0:
            divisor += 1
    if divisor == 8:
        ans += 1
print(ans)
n = int(input())


def judge(x):
    i = 1
    ans = 0
    while i*i < x:
        if x%i == 0:
            ans+=1
            if (x//i)*i == x:
                ans += 1
        i+=1
    if ans == 8:
        return True
    else:
        return False

ans = 0

for i in range(1,n+1,2):
    if judge(i):
        ans += 1
print(ans)
N = int(input())
ans = 0

for n in range(N+1):
  if n%2==1:
    Y = 0
    for m in range(1,N+1):
      if n%m==0:
        Y+=1
    if Y==8:
      ans+=1
    
print(ans)
def is_ans(n:int) -> int:
    count = 0
    for i in range(1,n+1):
        if n%i == 0:
            count += 1
    return count

def main():
    tmp = 0
    ans = 0
    n = int(input())
    for i in range(1,n+1):
        if i%2 == 1:
            tmp = is_ans(i)
        if tmp == 8:
            ans += 1
        tmp = 0
    print(ans)

if __name__ == '__main__':
    main()
n = int(input())
ans = 0
for i in range(1, n+1, 2):
    count = 0
    for j in range(1, i+1):
        if i%j == 0:
            count += 1
    if count==8:
        ans+=1
print(ans)
import numpy as np
n=int(input())

ans=0

for k in range(n+1):
    if k%2==1:
        count=0
        m=int(np.sqrt(k)+1)
        for i in range(m):
            a=i+1
            if(k%a==0):
                count+=1
        if count==4:
            ans+=1

print(ans)
n = int(input())
b = 0
for i in range(1, n+1):
  if i % 2 == 1:
    a = 0
    for j in range(1, i+1):
      if i % j == 0:
        a += 1
    if a == 8:
      b += 1
print(b)
N = int(input())
ans = 0
for i in range(1, N + 1, 2):
    cnt = 0
    for j in range(1, N + 1):
        if i % j == 0:
            cnt += 1
    if cnt == 8:
        ans += 1

print(ans)
N = int(input())
def cnt_div(n):
    cnt = 0
    for i in range(1,n+1):
        if i*i>n:break
        if n%i==0:
            cnt+=1
            if n//i!=i:
                cnt+=1
    return cnt
cnt = 0
for i in range(1,N+1):
    if i%2==1 and cnt_div(i)==8:
        cnt+=1
print(cnt)
N = int(input())
count = 0
from math import sqrt
for i in range(1,N+1)[::-1]:
    if i%2==1:
        yakusu = 0
        for j in range(1,i+1):
            if i%j==0:
                yakusu += 1
        
        if yakusu == 8:
            count += 1
print(count)
def div(x):
    cnt = 0
    for i in range(1, x + 1):
        if x % i == 0:
            cnt += 1
    return cnt


n = int(input())
ans = 0
for i in range(1, n + 1, 2):
    if div(i) == 8:
        ans += 1
print(ans)
N = int(input())
ans = 0
for i in range(1, N+1, 2):
    count = 0
    for j in range(1, int(i ** 0.5) + 1):
        if i % j == 0:
            count += 2
    if int(i ** 0.5) ** 2 == i:
        count -= 1
    if count == 8:
        ans += 1
print(ans)
N=int(input())

b=0
for i in range(N):
  a=0
  for j in range(i+1):
   
    if a==9:
      b=b-1
      break
    if (i+1)%2!=0 and (i+1)%(j+1)==0:      
      a=a+1
    if a==8:
      b=b+1

print(b)
n = int(input())

res = 0
for i in range(9, n+1, 2):
    yakusu = 0
    for j in range(1, i+1):
        if i % j == 0:
            yakusu += 1
    if yakusu == 8:
        res += 1

print(res)
import math
def is_square(N):
    return math.sqrt(N) - int(math.sqrt(N)) == 0

def get_divisor_count(N):
    divisor_count = 0
    for i in range(1,int(math.sqrt(N))+1):
        if N%i == 0:
            divisor_count += 1
    return divisor_count*2 if is_square(N) == False else divisor_count*2 - 1
if __name__ == "__main__":
    N = int(input())
    count = 0
    for i in range(1,N+1,2):
        if get_divisor_count(i) == 8:
            count += 1
    print(count)
def dcount(n):
    c = 0
    for i in range(1, n+1):
        if n % i == 0:
            c += 1
    return c

N = int(input())
c = 0
for i in range(1, N + 1, 2):
    if dcount(i) == 8:
        c += 1
print(c)
# -*- coding: utf-8 -*-
import sys

N = int(input().strip())
#-----

if N <= 104:
    print(0)
    sys.exit()
elif N == 105:
    print(1)
    sys.exit()
else:
    ans_list=[105]
    for i in range(107,N+1,2):
        cnt=0
        for j in range(1,N+1):
            if i % j == 0:
                cnt += 1
        
        if cnt == 8:
            ans_list.append(i)

print(len(ans_list))
n = int(input())
lis = [x for x in range(1, n+1, 2)]
ans = 0

for a in lis:
  lis2 = []
  for b in range(1, a+1):
    if a % b == 0:
      lis2.append(b)
  if len(lis2) == 8:
    ans += 1

print(ans)
n=int(input())
sm=0
for i in range(3,n+1,2):
    num=0
    for j in range(1,i+1,2):
        if i%j==0:num+=1
    if num==8: sm+=1
print(sm)
n = int(input())
ans = 0

for i in range(105, n + 1, 2):
    c = 0
    for d in range(1, i + 1, 2):
        if i % d == 0:
            c += 1
    if c==8:
        ans += 1
 
print(ans)
prime = [3, 5, 7, 11, 13, 17]
N = int(input())
ans = 0
for i in range(1, N+1, 2):
    a = 1; x = i
    for j in range(6):
        n = prime[j]    #; print(i, n)
        w = 0
        while x%n == 0:
            x = x//n
            w += 1 
        a *= w + 1
        if x  == 1:
            break
    if a == 8:
        ans += 1
print(ans)
N=int(input())
num=0
cdcount=0
count=0
for i in range(N):
    num=i+1
    for j in range(num):
        if (num%(j+1)==0):
            cdcount=cdcount+1
    if (cdcount==8)and(num%2==1):
        count=count+1
    cdcount=0
print(count)
#!/usr/bin/env python3

def make_divisors(n):
    divisors = []
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n//i)
    return divisors

N = int(input())

if N < 105:
    print(0)
    exit()
elif N == 105:
    print(1)
    exit()

ans = 1
for n in range(107, N+1, 2):
    if len(make_divisors(n)) == 8:
        ans += 1

print(ans)
N=int(input())
ans=0

for i in range(1,N+1,2):
    cnt=0
    for j in range(1,i+1):
        if i%j==0:
            cnt+=1
    if cnt==8:
        ans+=1
print(ans)
def make_divisors(n):
    divisors = []
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n//i)
 
    # divisors.sort()
    return divisors
  
N = int(input())  
ans = 0
for i in range(7, N+1, 2):
  cnt = len(make_divisors(i))
  if cnt == 8:
    ans += 1
    
print(ans)
n = int(input())

res = 0

for i in range(1, n+1):
    cnt = 0
    for j in range(1, i+1):
        if i % j == 0:
            cnt += 1
    if cnt == 8 and i % 2 == 1:
        res += 1
print(res)
N=int(input())
res=0
def make_divisors(n):
	divisors = []
	for i in range(1, int(n**0.5)+1):
		if n % i == 0:
			divisors.append(i)
			if i != n // i:
				divisors.append(n//i)
	return divisors
if N<105:
	print('0')
else:
	for i in range(105,N+1,2):
		if len(make_divisors(i))==8:
			res+=1
	print(res)
N=int(input())
ans = 0
for i in range(1,N+1):
    cnt=0
    if i%2!=0:
        for j in range(1,i+1):
            if i % j ==0:
                cnt+=1
    if cnt==8:
        ans+=1
print(ans)
import sys
input=sys.stdin.readline

def main():
    cnt = 0
    n = int(input())
    for i in range(1,n+1,2): # 奇数だけ繰り返す
        k = 0
        for m in range(1,i+1):
            if i % m == 0:
                k += 1
        if k == 8:
            cnt += 1
    print(cnt)

if __name__=="__main__":
    main()
N = int(input())
ans = 0
count = 0
for i in range(1,N+1,2):
    for j in range(1,i+1):
        if i%j == 0:
            ans += 1
    if ans == 8:
        count += 1
        ans = 0
    ans = 0
print(count)
N = int(input())

ans=0

for i in range(1,N+1):
    howyaku=0
    if i%2==0:
        continue
    for k in range(1,int(i**0.5)+1):
        if i%k==0:
            howyaku+=1
            if k != i//k:
                howyaku+=1
    if howyaku==8:
        ans+=1

print(ans)
n = int(input())


def divisor_count(n):
    i = 1
    count = 0

    while(i * i <= n):
        if n % i == 0:
            count += 1
            if n != i * i:
                count += 1
        i += 1

    return count

result = 0
for i in range(1, n + 1):
    if i % 2 == 1 and divisor_count(i) == 8:
        result += 1

print(result)
n=int(input())
a=[0]*(n+1)

for i in range(1,n+1,2):
	for j in range(1,n+1):
		if i%j==0:
			a[i]+=1
			
print(a.count(8))
n = int(input())
ans = 0
for i in range(8, n+1):
    #8回割れるかどうか
    divisor_cnt = 0
    for j in range(1, n+1):
        if i % j == 0 and j % 2 == 1:
            divisor_cnt += 1
    if divisor_cnt == 8:
        ans += 1
print(ans)
N = int(input())
ans = 0
for j in range(1,N+1,2):
    count = 0
    for i in range(1,j+1):
        if j%i==0:
            count+=1
    if count == 8:
        ans += 1
print(ans)
def main():
    n = int(input())

    # 奇数の数列生成
    odd = [i for i in range(1, n+1, 2)]

    res = 0
    for i in odd:
        cnt = 0
        for j in range(1, i+1, 2):
            if i % j == 0:
                cnt += 1
        if cnt == 8:
            res += 1
    print(res)
if __name__ == "__main__":
    main()
N=int(input())
#奇数
ki=[i for i in range(1,N+1,2)]
yakusuu=[]
ans=[]

for i in ki:
  for j in range(1,i+1):
    if i%j==0:
      yakusuu.append(j)
  else:
    ans.append(str(len(yakusuu)))
    yakusuu=[]

print(ans.count("8"))
if __name__ == '__main__':

	n = int(input())

	cnt = 0
	for i in range(1,n+1,2):
		tmp = 0
		for j in range(1,n+1):
			if i % j == 0:
				tmp += 1
		if tmp == 8:
			cnt += 1
		tmp = 0

	print(cnt)
def I(): return int(input())
N = I()
ans = 0
if N>=105:
    for i in range(105,N+1):
        yakusuu = []
        if i%2==1:
            for j in range(1,int(i**0.5)+1):
                if i%j==0:
                    yakusuu.append(j)
                    yakusuu.append(i//j)
        if len(yakusuu)==8:
            ans += 1
print(ans)
def n0():return int(input())
def n1():return [int(x) for x in input().split()]
def n2(n):return [int(input()) for _ in range(n)]
def n3(n):return [[int(x) for x in input().split()] for _ in range(n)]

n=n0()

ans=0
for k in range(105,n+1,2):
    c=0
    for i in range(1,int(k**0.5)+1):
        if k%i==0:
            c+=2
    if i**2==k:
        c-=1
    if c==8:
        ans+=1
print(ans)
n = int(input())
ans = 0
L = [0]*200
for i in range(1,n+1,2):
  tmp = 1
  cnt = 0
  while tmp <= i:
    if i % tmp == 0:
      cnt += 1
    tmp += 1
    L[i] = cnt
print(L.count(8))
def is_div_8(x):
    if x % 2 == 0:
        return False
    count = 0
    for j in range(1, x + 1):
        if x % j == 0:
            count += 1
    if count == 8:
        return True
    else:
        return False


N = int(input())
count = 0
for i in range(1, N + 1):
    if is_div_8(i):
        count += 1

print(count)
def divisors(n):
    lower_divisors=[]
    upper_divisors=[]
    i=1
    while i*i<=n:
        if n%i==0:
            lower_divisors.append(i)
            if i!=n//i:
                upper_divisors.append(n//i)
        i+=1
    return lower_divisors+upper_divisors[::-1]

n=int(input())
cnt=0
for i in range(1,n+1,2):
    if len(divisors(i))==8:
        cnt+=1
print(cnt)
n=int(input())
c=0
ans=0
for i in range(1,n+1):
    if i%2==1:
        for j in range(1,n+1):
            if i%j==0:
                c+=1
        if c==8:
            ans+=1
        c=0
print(ans)
N = int(input())


def func(x):
    if x % 2 == 0:
        return 0

    cnt = 0
    for i in range(1, x + 1):
        if x % i == 0:
            cnt += 1
    if cnt == 8:
        return 1
    else:
        return 0


ans = 0
for i in range(1, N + 1):
    ans += func(i)

print(ans)
import math
N=int(input())
res=0
for i in range(1,N+1,2):
    cnt=0
    for j in range(1,i+1):
        if(i%j==0):
            cnt+=1
    if(cnt==8):
        res+=1
print(res)
import math
n = int(input())

ans = 0
if n < 105:
    print(0)
else:
    for i in range(105, n +1):
        if i % 2 == 0:
            continue
        div = []
        for j in range(1, int(math.sqrt(i**2) + 1)):
            if i % j == 0:
                div.append(j)
                if j != i // j:
                    div.append(i //j)
        if len(div) // 2 == 8:
            ans += 1
    print(ans)
n=int(input())
ans=0
for i in range(1,n+1):
  cnt=0
  for j in range(1,i+1):
    if i%j==0:
      cnt+=1
  if i%2==1 and cnt==8:
    ans+=1
print(ans)
def make_divisors(n):
    divisors = []
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n//i)

    # divisors.sort()
    return divisors
n = int(input())
count = 0
for i in range(1, n+1, 2):
    if len(make_divisors(i)) == 8:
        count += 1
print(count)
N = int(input())

ans = 0
for i in range(1, N+1):
    cnt = 0
    if i % 2 == 1:
        for j in range(1, i+1):
            if i % j == 0:
                cnt += 1
    if cnt == 8:
        ans += 1
print(ans)
N=int(input())
cnt=0
for i in range(1,N+1,2):
    count=0
    for t in range(1,i+1):
        if i%t==0:
            count+=1
        else:
            continue
    if count==8:
        cnt+=1
print(cnt)
N = int(input())
ans = 0
for i in range(1,N+1):
    if i%2 == 1:
        y = 0
        for j in range(1,i+1):
            if i%j == 0:
                y += 1
        if y == 8:
            ans += 1
print(ans)
# 約20分
# 簡単な問題なのだがパッと正確にイメージできていない

n = int(input())
l = []
for j in range(1,n+1):
    if j%2 != 0:
        l.append(j)
b = 0
for i in l:
    a = 0
    for k in range(1,i+1):
        if i%k == 0:
            a += 1
    if a == 8:
        b += 1
print(b)
N = int(input())
result=0
for i in range(1,N+1,2):
    j= i+1
    cnt=0

    for k in range(1,j):
        if i % k==0:

            cnt+=1

            if cnt>8:
                break
    
    if cnt == 8:
        result+=1
    
print(result)
n = int(input())
ans = 0


for x in range(1,n+1,2):
    cou = 0
    for j in range(1,x+1):
        if x % j == 0:
            cou += 1
    if cou == 8:
        ans += 1

print(ans)
n = int(input())
ans = 0
for i in range(1,n+1):
    if i % 2 == 0:
        continue
    count = 0
    for j in range (1,i+1):
        if i % j == 0:
            count += 1
    if count == 8:
        ans += 1
print(ans)
import math
N = int(input())
ans = 0
for m in range(1,N+1,2):
    P = set([1,m])
    for k in range(2,math.floor(math.sqrt(m))+1):
        if m % k == 0:
            P.add(k)
            P.add(m//k)
    if len(P) == 8:
        ans += 1
print(ans)
n=int(input())

ans=0
count=0
for i in range(1,n+1):
    if i%2 == 1:
        for j in range(1,i+1):
            if i%j == 0:
                count += 1
        if count == 8:
            ans += 1
        count = 0

print(ans)
N = int(input())

sup = (N + 1) // 2
con = 0
ans = 0

if N < 105:
  print(ans)

else:
  for i in range(1,N + 1,2):
    for j in range(1,max(i // 2 + 1,2)):
      if i % j == 0:
        con +=1
    if con == 7:
      ans += 1
    con = 0
      
  print(ans)
n=int(input())
ans=0
for i in range(1,n+1,2):
  cnt=0
  for j in range(1,i+1):
    if i%j==0:
      cnt+=1
  if cnt==8:
    ans+=1
print(ans)
def make_d(n):
  d = []
  for i in range(1,int(n**(0.5))+1):
    if n%i == 0:
      d.append(i)
      d.append(n//i)
  return d
ans = 0
for i in range(1,int(input())+1):
  if i % 2 == 0:
    continue
  if len(make_d(i)) == 8:
    ans += 1
print(ans)
N = int(input())
ans = 0
for i in range(1, N+1, 2):
    count = 0
    for j in range(1, i//2+1):
        if i % j == 0:
            count += 1
    if count == 7:
        ans += 1
print(ans)
n = int(input())
if(n < 105):
    print(0)
elif(105 <= n < 135):
    print(1)
elif(135 <= n < 165):
    print(2)
elif(165 <= n < 189):
    print(3)
elif(189 <= n < 195):
    print(4)
else:
    print(5)
n = int(input())
if n < 105:
  print(0)
elif n < 135:
  print(1)
elif n < 165:
  print(2)
elif n < 189:
  print(3)
elif n < 195:
  print(4)
else:
  print(5)
# B - 105

def yakusu_rekkyo(n):
    yakusu = set()
    for i in range(1, int(pow(n, 0.5)+1)):
        if n%i == 0:
            yakusu.add(i)
            yakusu.add(n//i)
    return yakusu

N = int(input())
ans = 0
for i in range(105, N+1, 2):
    Y = yakusu_rekkyo(i)
    if len(Y) == 8:
        ans += 1
        
print(ans)