peterverebics/CodeNet_Python_118 huggingface dataset:
n=int(input())
app=[]
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:
        app.append(i)

print(len(app))
n=int(input())
ans=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:
            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 divisor_list(n):
    ret = set()
    i = 1
    while i * i <= n:
        if n % i == 0:
            ret.add(i)
            ret.add(n // i)
        i += 1
    return ret


N = int(input())

ans = 0
for i in range(N+1):
    A = divisor_list(i)
    oddcnt = 0
    for a in A:
        if a % 2 == 1:
            oddcnt += 1
    if oddcnt == 8:
        ans += 1
print(ans)
n=int(input())
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
cnt=0
for i in range(1,n+1,2):
    if len(make_divisors(i))==8:
        cnt+=1
print(cnt)
n=int(input())
cnt=0
for i in range(1,n+1,2):
	a=0
	for j in range(1,i+1):
		if i  % j ==0:
			a += 1
	if a==8:
		cnt += 1
print(cnt)
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(1, N+1):
    if i % 2 == 1 and len(make_divisors(i)) == 8:
        ans += 1

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

for i in range(1, n+1):
    if i % 2 == 1:
        l = []
        for d in range(1, i+1):
            if i % d == 0:
                l.append(d)
                if len(l) == 8:
                    cnt += 1
print(cnt)
i_n = int(input())
nu = 0;
for i in range(1,i_n+1):
  cnt = 0
  for j in range(1,i+1):
    if i%j==0:
      cnt+=1
  if cnt == 8 and i%2 != 0:
    nu += 1
print(nu)
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 fn(a):
  alist =[]
  for i in range(1,a+1):
    if a%i == 0:
      alist.append(i)
  return len(alist)
n = int(input())
anslist =[]
for i in range(1,n+1):
  if fn(i) == 8 and i%2 == 1:
    anslist.append(i)
print(len(anslist))
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())

s = list(range(1,N+1,2))
ans = 0
for i in s:

    if len(make_divisors(i)) == 8:
        ans += 1
print(ans)
N = int(input())

def divisor(n):
    res = []
    i = 1
    while i*i <= n:
        if n % i == 0:
            res.append(i)
            if i != n//i:
                res.append(n // i)
        i += 1
    return res

ans = 0
for i in range(1, N+1, 2):
    res = len(divisor(i))

    ans += 1 if res == 8 else 0

print(ans)
n=int(input())
import math
ans=0
def yakusu(n):
  ans_local=set()
  for i in range(1,int(math.sqrt(n))+1):
    if n%i==0:
      ans_local = ans_local | set([i,n//i]) #setなので平方数でもOK
  return list(ans_local)  #必要に応じてsort
for i in range(1,n+1,2):
    if len(yakusu(i))==8:
        ans+=1
print(ans)
n=int(input())
ans=0
o=[a for a in range(1,n+1) if a%2==1]
for i in o:
    c=0
    for j in range(1,i+1):
        if i%j==0:
            c+=1
    if c==8:
        ans+=1
print(ans)
N = int(input())
ans = 0
count = 0
#1の約数の数は絶対1、面倒なので2~Nのカウントにした。+1忘れないように
for i in range(2, N+1):
   for j in range(1, i+1):
      if i % j == 0:
         count += 1
   if count == 8 and i % 2 == 1:
      ans += 1
   count = 0

print(ans)
import math
ans = 0
n = int(input())
for i in range(1,n+1,2):
    count = 0
    for j in range(1,int(math.sqrt(i))+1):
        if i%j==0:
            count+=1
    if count*2 == 8:
        ans += 1
print(ans)
n = int(input())

ans = 0
i = 1
while i <=n:
    j = 1
    cnt = 0
    while j <= i:
        if i%j == 0:
            cnt +=1
            #print(i,cnt,j)
        j +=1
    if cnt == 8 and i%2 ==1:
        #print(i)
        ans += 1
    i +=1
print(ans)
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)
def main():
    n = int(input())
    count = 0
    x_list =[3**3*5, 3**3*7, 3*5*7, 3*5*11, 3*5*13]
    for one in x_list:
        if one<=n:
            count+=1
    print(count)

if __name__=="__main__":
    main()
N = int(input())
ans = 0
for n in range(1, N+1):
    cnt = 0
    if n % 2 == 1:
        for i in range(1, N+1):
            if n % i == 0:
                cnt += 1
    if cnt == 8:
        ans += 1
print(ans)
n = int(input())
ans = 0
for x in range(1, n + 1, 2):
    res = 0
    for y in range(1, n + 1):
        if x % y == 0:
            res += 1
    if res == 8:
        ans += 1
print(ans)
N = int(input())

if N < 105:
  ans = 0
elif N == 105:
  ans = 1
else:
  ans = 1
  for n in range(106, N+1):
    if n % 2 == 0:
      continue
    count = 0
    for i in range(1, int(n**(1/2))+1):
      if n % i == 0:
      	count += 1
    if count == 4:
      ans += 1
print(ans)
def count_divisor(n):
    count = 0
    for i in range(1, n+1):
        if n % i == 0:
            count += 1
    return count


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


if __name__ == "__main__":
    main()
n = int(input())

X = [int(x) for x in range(1,n+1,2)]

ans = 0
for x in X:
    a = 0
    for i in range(1,n+1):
        if x % i == 0:
            a += 1
    if a == 8 :
        ans += 1 
print(ans)
n,ans=int(input()),0
for i in range(1,n+1,2):
  divisor=[]
  for j in range(1,int(i**0.5)+1,2):
    if i % j == 0:
      divisor.append(j)
      if j != i // j:
        divisor.append(i//j)
  if len(divisor) == 8:
    ans += 1
print(ans)
N = int(input())
ans = 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:
    ans += 1
print(ans)
n=int(input())
num=[3*5*7,3*3*3*5,3*5*11,3*3*3*7,3*5*13]
ans=0
for i in range(5):
    if n>=num[i]:
        ans+=1
    else:
        break
print(ans)
N=int(input())
cnt = 0
ans = 0
for i in range(1,N+1):
    if i % 2 != 0:
        for j in range(1,i+1):
            if i%j == 0:
                cnt += 1
                #print(j)
    if cnt == 8:
        ans += 1
    cnt = 0
print(ans)
n = int(input())

answer = []
for i in range(1,n+1,2):
  check = 0
  for j in range(1,i+1):
    if (i) % j == 0:
      check += 1
      
  if check == 8:
    answer.append(i)
    
print(len(answer))
N=int(input())

result=0
for i in range(1,N+1):
    if i%2!=0:
        divisor=0
        for j in range(1,i+1):
            if i%j==0:
                divisor+=1
        if divisor==8:
            result+=1
print(result)
N = int(input())
a = 0

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

print(a)
n = int(input())

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

print(count)
n = int(input())
count = 0

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

for i in range(1,n+1,2):
    if len(divs(i)) == 8:
        count += 1
print (count)
def get_divisors(n):
    div = []
    append = div.append
    for i in range(1, int(n ** 0.5) + 1):
        if n % i == 0:
            append(i)
            if i != n // i:
                append(n // i)
    div.sort()
    return div


# input
N = int(input())

# check
cnt = 0
for n in range(1, N + 1, 2):
    div = get_divisors(n)
    if len(div) == 8:
        cnt += 1

print(cnt)
import numpy as np
from sys import stdin
ans=0
c=0
N = int(input().rstrip())
for i in range(N):
  c=0
  i+=1
  if i%2==1:
    for j in range(i):
      j+=1
      if i%j==0:
        c+=1
  if c==8:
    ans+=1

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


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


c = 0
for i in range(1, N + 1):
    if len(divisors(i)) == 8 and i % 2:
        c += 1

print(c)
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')
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())
ans = 0

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

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

def yakusu(n):
    L=[]
    for i in range(1,int(n**0.5)+1):
        if n%i==0:
            if i not in L:
                L.append(i)
            if n//i not in L:
                L.append(n//i)
    return len(L)

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

print(c)
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 len(divisors)

n=int(input())
ans=0

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

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

ans = 0

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

print(ans)
# 引数nが持つ正の約数の数を調べる
def divisor_count(n:int) -> int:
  count = 0
  for x in range(1, n+1):
    if n % x == 0:
      count += 1
  
  return count

def solve(n: int) -> int:
  # [1..N]内で奇数かつ約数をちょうど8個持つ数字の数
  result = 0
  for x in range(1, n+1):
    if x&1 and divisor_count(x) == 8:
      result += 1
  return result
  
N = int(input())
print(solve(N))
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()
ans = 0
if n < 105:
    print(0)
    exit
else:
    for i in range(105, n+1, 2):
        cnt = 0
        for q in range(1,i+1):
            if i % q == 0:
                cnt += 1
        if cnt == 8:
            ans += 1
    print(ans)
n = int(input())
if n<105:
    print(0)
    exit()
if n==105:
    print(1)
    exit()
res=1
for i in range(107,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:
        res+=1
print(res)
def div(n):
    if n==1:s=1
    else:s=2
    for i in range(2,n):
        if n%i==0:s+=1
    return s

n=int(input())
ans=0
for i in range(1,n+1,2):
    if div(i)==8:ans+=1
print(ans)
from math import sqrt

N = int(input())
ans = 0
for M in range(105,N+1,1):
    if M%2==0:
        continue 
    count=0
    for i in range(1,int(sqrt(M))+2,1):
        if M % i ==0:
            if M % i == 0:
                count+=2
    if count==8:
        ans+=1
print(ans)
N = int(input())
A = [105, 135, 165, 189, 195]
print(sum([1 for a in A if a <= N]))
def gp():
	yield 2
	yield 3
	n=6
	while 1:
		yield n-1
		yield n+1
		n+=6
	

def resolve():
	nn=int(input())
	l=[]
	ans=0
	for n in range(1,nn+1)[::2]:
		s=1
		pl=gp()
		for i in pl:
			k=0
			while n%i==0:
				k+=1
				n//=i
			s*=k+1
			if n==1:
				break
		if s==8:
			ans+=1
	print(ans)
N = int(input())
if (N < 105):
    print(0)
if (105 <= N < 135):
    print(1)
if (135 <= N < 189):
    print(2)
else:
    print(3)
N = int(input())

res = 0
for i in range(1,N+1):
    if N % i == 0:
        if i % 2 == 1:
            res += 1

print(res)
import numpy 

n = int(input())
num = [3,5,7,11,13,17,19]
k = len(num)
ans =0
for i in range(2 ** k):
    cnt = []
    for j in range(k):
        if ((i >> j)&1):
            cnt.append(num[j])
    if numpy.prod(cnt) <= n   and len(cnt) == 3  :
        ans += 1
print(ans)
N = int(input())
ans = 0
if N>=105:
    ans = 1
print(ans)
N = int(input())
if(N >= 195):
  print(3)
elif(N >= 165):
  print(2)
elif N>=105:
  print(1)
else:
  print(0)
# 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(N)
    if len(Y) == 8:
        ans += 1
        
print(ans)
n = int(input())
count = 0
for i in range(1,n+1):
  if n % i == 0:
    count += 1
if count == 8:
  print("Yes")
else:
  print("No")
n = int(input())
ans = 0
for i in range(1, n+1, 2):
    cnt = 0
    for j in range(1, i+1):
        if n % j == 0:
            cnt += 1
    if cnt == 8:
        ans += 1
print(ans)
N = int(input())
counter = 0
ans = 0
for i in range(1,N+1):
    for j in range(1, N+1):
        if i % j == 0:
            counter += 1
    
    if counter == 8:
        ans += 1

    counter = 0


print(ans)
def hantei(n):
    root_n = int(n**0.5 +0.5)
    
    if root_n**2 == n:
        return 0
    
    total = 0
    for i in range(1,root_n):
        if n % i == 0:
            total += 2
            
    return total
    
n = int(input())

total = 0
for i in range(1,n+1,2):
    if hantei(i) == 8:
        print(i)
        total += 1

print(total)
N = int(input())

if N >= 189:
  print(3)
elif N >= 135:
  print(2)
elif N >= 105:
  print(1)
else:
  print(0)
import math
n = int(input())

def factors(a):
    b = int(math.sqrt(a))
    f = []
    for i in range(1, b+1):
        if a % i == 0:
            f.append(i)
            f.append(a//i)
    return len(f)

def solve():
    if n < 105:
        print(0)
        return
    ans = 0
    for i in range(105, n+1):
        if factors(i) == 8:
           ans += 1
    print(ans)
solve()
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)
import sys, math
def input():
    return sys.stdin.readline()[:-1]
from itertools import permutations, combinations
from collections import defaultdict, Counter
from math import factorial
from bisect import bisect_left # bisect_left(list, value)
#from fractions import gcd

sys.setrecursionlimit(10**7)
N = int(input())

cntt = 0
for i in range(1, N+1, 2):
    cnt = 0
    for j in range(1, int(math.sqrt(i)), 2):
        if i%j==0:
            cnt += 2
    if cnt == 8:
        cntt += 1
print(cntt)
N=int(input())
if N<105:
    print(0)
elif N==105:
    print(1)
else:
    ans=0
    for n in range(106,N+1):
        if n%2:
            K=n//2
            y=0
            for k in range(2,K):
                if n%k==0:
                    y+=1
            if y==6:
                ans+=1
    print(ans)
N = int(input())
counter = 0
ans = 0
for i in range(1,N+1):
    for j in range(1, N+1):
        if N % j == 0:
            counter += 1
    
    if counter == 8:
        ans += 1


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

cnt=0
ans=0

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

print(ans)
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:
        print(i)
        ans += 1
print(ans)
n = int(input())

if n < 105:
    print(0)
elif n < 165:
    print(1)
elif n < 195:
    print(2)
else:
    print(3)
n = int(input())
cnt = 0
for i in range(1, n+1):
    if n % i == 0:
        cnt += 1
if cnt == 8:
    print(1)
else:
    print(0)
N = int(input())
ans = 0
if N%2==0:
  print("0")
else:
  for num in range(1,N+1):
    cnt = 0
    for i in range(1,num):
      if num%i == 0:
        cnt = cnt+1
      
    if cnt == 8:
      ans = ans+1


print(ans)
n = int(input())
if n < 105:
    print(0)
elif n < 165:
    print(1)
elif n < 195:
    print(2)
else:
    print(3)
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())
cnt = 0
for i in range(1, n+1):
    if i%2==0:
        continue
    elif sum(make_divisors(i))==8:
        cnt = cnt + 1
print(cnt)
N = int(input())
 
def check_divisor(number):
    divisors = 0
    for j in range(1, number+1, 2):
        if not (number%j):
            divisors += 1
            if divisors == 9: return False
    if divisors == 8: return True
    else: return False

count = 0
for i in range(1, N+1, 2):
	if check_divisor(i):
		count += 1
n=int(input())
ans=0
for i in range(1,n+1,2):
  count=0
  for j in range(1,i+1):
    if n%j==0:
      count=count+1
  if count==8:
    ans=ans+1
else:
  print(ans)
import sys

INPUT = lambda: sys.stdin.readline().rstrip()
INT = lambda: int(INPUT())

sys.setrecursionlimit(10 ** 9)


def main():
    N = INT()
    
    if N < 105: print(0)
    elif N < 165: print(1)
    else: print(2)


if __name__ == '__main__':
    main()
N = int(input())
if N<105:
  print(0)
elif N<135:
  print(1)
elif N<189:
  print(2)
elif N<195:
  print(3)
else:
  print(4)
n = int(input())
res = 0
for i in range(1,n+1, 2):
	if i % 1:
		cnt = 0
		for j in range(i+1):
			if i % j == 0:
				cnt += 1
		if cnt == 8:
			res += 1

print(res)
n = int(input())

ret = 0


for j in range(1,n+1):
    cnt = 0
    for i in range(1,j+1):
        if n % i == 0:
           cnt += 1
    if cnt == 8:
        ret += 1
print(ret)
n = int(input())
a = 1
status = 0
count = 0
l = []

for i in range(1,n):
    if i % 2 ==0:
        break
    else:
        for j in range(1,n):
            if j % a == 0:
                count += 1
            else:
                break

            if count == 8:
                l.append(1)

print(sum(l))
N = int(input())

count = 0
for i in range(1, N+1):
    yakusu_count = 0

    if i % 2 == 0:
        break

    for j in range(1, N+1):
        if N % j == 0:
            yakusu_count += 1

    if yakusu_count == 8:
        count += 1

print(count)
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
ans=0
N=int(input())
if N<105:
    print(0)
    exit(0)
for i in range(104,N):
    if i%2==1 and len(make_divisors(i))==8:
        ans+=1
print(ans)
n = int(input())
cnt = 0
ans = 0
j = 1
while j < n:
  if cnt == 8:
    ans += 1
  cnt = 0
  j += 2
  for i in range(j):
    if j % (i+1) == 0:
      cnt += 1


print(ans+1 if cnt == 8 else ans)
n=int(input())
a=0
ans=0
if n < 105:
  print(0)

elif n == 105:
  print(1)
  
else:
  for i in range(107,n,2):
    a=0
    for j in range(i):
      if i%(j+1)==0:
        a += 1
    if a==8:
      ans +=1
  print(ans)
n = int(input())
if 165 <= n:
    print(2)
elif 105 <= n:
    print(1)
else:
    print(0)
N = int(input())
cnt = 0
for i in range(1, N + 1):
    k = 0
    for j in range(1, N + 1):
        if i % j == 0:
            k += 1
    if k == 8:
        cnt += 1
in_num = int(input())
check_num = 0
ans_counter = 0

while check_num <= in_num:
	i = 1
	div_counter = 0
	while i <= check_num /3:
		if check_num % i == 0:
			div_counter += 1
		i += 2
	if div_counter == 8:
		ans_counter += 1
	check_num += 2

print(ans_counter)
N=int(input())
 
ans=0
odd=[]
for i in range(1,N+1):
  if i%2!=0:
    odd.append(i)
    
if N  <104:
  pass
else:
  for i in range(105,N+1):
    if i%2!=0:
      tmp=0
      for j in odd:
        if i%j==0:
          tmp=+1
      if tmp==8:
        ans+=1 
print(ans)
ret = 0
for x in range(11, int(input()) + 1, 2):
    n = 2
    for y in range(2, x // 2 + 1):
        if x % y == 0:
            n += 1
    if n == 8:
        ret += 1
        print(x)
print(ret)
N = int(input())
if N < 105:
    print(0)
elif N < 165:
    print(1)
else:
    print(2)
import math

n = int(input())
ans = 0
for i in range(105, n+1, 2):
    cnt = 0
    for j in range(2, int(math.sqrt(n))):
        if i % j == 0:
            cnt += 1
    if cnt == 3:
        ans += 1
print(ans)
n = int(input())
if n < 105:
  print(0)
else:
  output = 0
  for i in range(105,n+1):
    yaku = 0
    for j in range(1,n+1):
      if n % j == 0:
        yaku += 1
      if yaku > 8:
        continue
    if yaku == 8:
      output += 1
  print(output)
n = int(input())
ans = 0
total = 0
for i in range(n//2 + 1):
    for j in range(1, 2*i + 2):
        if (2*i + 1) % j == 0:
            ans += 1
    if ans == 8:
        total += 1
    ans = 0
print(total)
import sys
def I(): return int(sys.stdin.readline().rstrip())

N = I()
if N < 105:
    print(0)
elif N < 165:
    print(1)
elif N < 195:
    print(2)
else:
    print(3)
N = int(input())

if N >= 189:
  print(3)
elif 189 > N >= 135:
  print(2)
elif 135 > N >= 105:
  print(1)
else:
  print(0)
N = int(input())

divisor_cnt = 0
num = 0
# Nは奇数と言う制約があるため、約数は奇数×奇数の組み合わせ
for i in range(1, N+1, 2):
    for j in range(1, N+1, 2):
        if i * j == N:
            divisor_cnt += 1
            if divisor_cnt % 8 == 0:
                num += divisor_cnt // 8
print(num)
def I(): return int(input())
n = I()
ans = 0
if n>=105:
    for i in range(105,n+1,2):
        cnt=0
        for j in range(1,int(n**0.5)+1):
            if i % j ==0:
                cnt+=2
        if cnt==8:ans+=1
print(ans)
N = int(input())
if N >= 105 and N % 2 == 1:
  print(1)
else:
  print(0)
def divisor(n): 
    i = 1
    table = []
    while i * i <= n:
        if n % i == 0:
            table.append(i)
            table.append(n//i)
        i += 1
    table = list(set(table))
    return table

N = int(input())
total = 0

for n in range(1, N + 1, 2):
    print(n)
    if len(divisor(n)) == 8:
        total += 1

print(total)
N = int(input())
count_1,count_2 = 0,0
for i in range(1,N+1,2):
  for j in range(1,i+1,2):
    if N % j == 0:
      count_1 += 1
  if count_1 == 8:
    count_2 += 1
  count_1 = 0
print(count_2)
import math

def countDividers(n):
    divisors = []
    for i in range(1, int(math.sqrt(n))):
        if n % i == 0:
            divisors.append(i)
            divisors.append(int(n/i))
    return len(divisors)


if __name__ == '__main__':
    n = int(input())
    count = 0
    for i in range(1,n+1):
        if i %2 ==1 and countDividers(i) == 8:
            count += 1
           
    print(count)
n = int(input())

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

print(res)
def ABC106C(n):
    a = 0
    for i in range(1,n+1):
        if n % i == 0:
            a += 1
    return a

a = 0
for i in range(1,int(input()),2):
    if ABC106C(i)==8:
        a += 1
print(a)
n = int(input())
if n < 105:
  print(0)
elif 105 <= n < 195:
  print(1)
else:
  print(2)
n = int(input())

ans = 0
yakusu = 0

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

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

if n >= 195:
    print(3)
elif n >= 165:
    print(2)
elif n >= 105:
    print(1)
else:
    print(0)