peterverebics/CodeNet_Python_118 huggingface dataset:
N=int(input())
res = 0
def checkOdd(N):
  k = 0
  for i in range(1,N+1):
    if N % i ==0:
      k += 1
  if k == 8:
    return True
  else:
    return False
 
if N<104:
  print(res)
else:
  for i in range(105,N+1,2):
    if checkOdd(i):
      res += 1
  print(res)
N = int(input())

cnt=0
ans=0

for i in range(1,N+1,2):#iは対象となる奇数
    for j in range(1,i+1):
        if i%j ==0:
            cnt+=1
    if cnt ==8:
        ans+=1
    cnt =0

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

has8 = [0] * 201
for num in range(1,201):
    cnt = 0
    if num % 2 == 1:
        for m in range(1,num+1):
            if num % m == 0:
                cnt += 1
        if cnt == 8:
            has8[num] = 1

total = [0] * 201
for i in range(1,201):
    total[i] = total[i-1] + has8[i]

print(total[N])
n=int(input())
ans=0
m=0
for i in range(1,n+1):
    m=0
    for j in range(1,i+1):
        if i%j==0:
            m+=1
    if  i%2==1 and m==8:
        ans+=1
    
print(ans)
def factors(n):
    d, res = 1, 0
    while d*d <= n:
        if n % d == 0:
            if d*d == n:
                res += 1
            else:
                res += 2
        d += 1
    return res


N = int(input())

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

print(ans)
n = int(input())
cnt = 0
for i in range(1,n+1,2):
    yakusuu = 0
    for j in range(1, i +1):
        if i % j == 0:
            yakusuu +=1
    if yakusuu == 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,2):
    c = make_divisors(i)
    if len(c) == 8:
        ans += 1
print(ans)
N = int(input())
ans = 0
for i in range(1,N+1):
    if (i%2 == 0) : continue
    l = 0
    for j in range(1,i+1):
        if (i % j == 0):
            l += 1
    if (l == 8):
        ans += 1

print(ans)
def divisor(x):
  ret=[]
  for i in range(1,x+1):
    if x%i==0:
      ret.append(i)
  return len(ret)

ans=0
n=int(input())
for i in range(1,n+1):
  if divisor(i)==8 and i%2==1:
    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)
N=int(input())

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
  
counter = 0
for i in range(1,N+1,2):
  if len(divisor(i)) == 8:
    counter += 1

print(counter)
def divisor_all(n): # 約数全列挙
    l = [1,n]
    for i in range(2,int(pow(n,1/2))+1):
        if n % i == 0:
            if i == n//i:
                l.append(i)
            else:
                l.append(i)
                l.append(n//i)
    l.sort()
    return l # list
N = int(input())
ans = 0
for i in range(1,N+1,2):
    if len(divisor_all(i))==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(raw_input())
ans = 0
for i in range(1, N+1):
    num = 0
    if i%2 != 0:
        for j in range(1, N+1):
            if i%j == 0:
                num = num + 1
#        print i, num                                                                                  
        if num == 8:
            ans = ans + 1

print ans
def wari(a,i):
    if(a%i == 0):
        return 1
    else:
        return 0

def yakusum(n):
    sum = 1
    for i in range(1,n//2):
        sum += wari(n,i)
    return sum


n = int(input())
sum = 0
for i in range(105,n+1,2):
    if yakusum(i) == 8:
        sum += 1

print(sum)
N = int(input())
ans = 0
for i in range(1, N+1, 2):
    divisor = 0
    for j in range(1, i+1):
        if i % j == 0:
            divisor += 1
    if divisor == 8:
        ans += 1
print(ans)
import math
N=int(input())
ans=0
for i in range(1,N+1):
    if i%2==0:
        continue
    cnt=0
    for k in range(1,i+1):
        if i%k==0:
            cnt+=1
    if cnt==8:
        ans+=1
print(ans)
n=input()
n=int(n)
s=0
for i in range(1,n+1):
    p=0
    if i%2==0:
        continue
    for j in range(1,i+1):
        if i%j==0:
            p+=1
    if p==8:
        s+=1
print(s)
import math
N = int(input())
count = 0
def divisoros_count(n):
    num = 0
    for i in range(1,int(math.sqrt(n))+1):
        if n % i == 0:
            num += 1
            if n != i**2:
                num += 1
    return num

for i in range(1,N+1,2):
    if divisoros_count(i) == 8:
        count += 1

print(count)
#105という数は, 非常に特殊な性質を持つ - 奇数なのに, 約数が 8個もある.
#さて, 1以上 N以下の奇数のうち, 正の約数を ちょうど 8個持つようなものの個数を求めよ.
#1<=N<=200

N = int(input())

Nlist = list(range(1,N+1, 2))
ans = 0
for n in Nlist:
    tmp = 1
    for i in range(1, (N+1)//2):
        if n % i == 0:
            tmp += 1
    if tmp == 8:
        ans += 1

print(ans)
n=int(input())
ans=0
for i in range(1,n+1,2):
    res = 0
    for j in range(1,i+1):
        if i%j==0:res+=1
    if res==8:ans+=1
print(ans)
n=int(input())
def yakusuu(n):
  num=0
  if n%2==1:
    for i in range(1,n+1):
      if n%i==0:
        num=num+1
  return num 

ans=0
for i in range(n+1):
  if yakusuu(i)==8:
    ans=ans+1
print(ans)
import itertools
sosuu = [3,5,7,11,13]
n=(int)(input())
count = 0
for i in itertools.combinations(sosuu, 3):
  if i[0] * i[1] * i[2] <= n:
    #print(i)
    count += 1
add = 2 if n >= 189 else (1 if n >= 135 else 0)
print(count + add)
n=int(input())
count=0
for i in range(1,n+1):
    if i%2==1:
        yakusuu=0
        for j in range(1,int((i**0.5)//1)+1):
            if i%j==0:
                if j**2==i:
                    yakusuu+=1
                else:
                    yakusuu+=2
        if yakusuu==8:
            count+=1
print(count)
N=int(input())
if 1<=N and N<=104 :
  print(0)
elif N<=134 :
  print(1)
elif N<=164 :
  print(2)
elif N<=188 :
  print(3)
elif N<=194 :
  print(4)
else :
  print(5)
def divisor(num):
    
    ret = 0
    for i in range(1, num+1):
        if(num%i == 0): ret += 1
    
    return ret

n = int(input())

if(n <= 105):
    if(n==105): print(1)
    else: print(0)
    exit()

res = 1
for i in range(106, n+1):
    if(divisor(i) == 8 and i%2==1): res += 1

print(res)
number = int(input())

num_eight_divisors = 0

numbers = list(range(9, number + 1, 2))

for i in range(9, number + 1, 2):
    divisors = [1, i]

    for j in range(2, i):
        q, mod = divmod(i, j)

        if mod == 0:
            divisors.append(j)
            divisors.append(q)

    if len(set(divisors)) == 8:
        num_eight_divisors = num_eight_divisors + 1

print(num_eight_divisors)
n=int(input())

ans=0
for i in range(1,n+1,2):
  cou=0
  for j in range(1,n+1):
    if i%j==0:
      cou+=1
  if cou==8:
    ans+=1
print(ans)
n = int(input())
l = [i for i in range(1, n+1) if i % 2 == 1]
ans = 0
for i in l:
  cnt = 0
  for x in range(1, i+1):
    if i % x == 0:
      cnt += 1
  if cnt == 8:
    ans += 1
print(ans)
def solve(N):
    allcount=0
    if N<105:
        return allcount
    for i in range(105,N+1,2):
        count=0
        for j in range(1,i+1):
            if i%j==0:
                count += 1
        if count==8:
            allcount += 1
    return allcount


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

def make_divisors(n):
    x = 0
    i = 1
    while i*i <= n:
        if n % i == 0:
            x += 1
            if i != n // i:
                x += 1
        i += 1
    return x

s = 0

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

print(s)
n=int(input())
a = 0
for x in range(1,n+1):
    if x%2 == 0: continue
    else:
        b=0
        for y in range(1,x+1):
            if x%y ==0:
                b+=1
        if b>= 8: a+=1
        
print(a)
n=int(input())
ans=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):ans+=1
print(ans)
t = 0

def div(n):
    c = 0
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            c += 2 if i != n // i else 1
    return c

for i in range(1, int(input()) + 1, 2):
    if div(i) == 8:
        t += 1

print(t)
_=int(input());c=0
for i in 'i¥½ÃÉ':
  if (_ < ord(i)):
    print(c)
    break
  c+=1
N = int(input())
cnt = 0
ans = 0
for i in range(1,N+1,2):
    for j in range(1,i+1):
        if(i%j == 0):
            cnt += 1
    if(cnt == 8):
        ans += 1
    cnt = 0
    
print(ans)
n=int(input())

a=[]
for i in range(1,201):
    s=0
    for j in range(1,int(i**0.5)+1):
        if i%j==0:
            s+=1
            if j != i//j:
                s+=1
    a.append(s)

ans=0
for i in range(n):
    if a[i]==8 and i%2==0:
        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(1, n+1):
    if i % 2 == 1:
        if len(make_divisors(i)) == 8:
            ans += 1

print(ans)
def solution():
    n = int(input())
    ans = 0
    for i in range(21, n+1, 2):
        match = 0
        for j in range(1, i+1):
            if i % j == 0:
                match += 1
        if match == 8:
            ans += 1
    print(ans)

solution()
n = int(input())
ans = 0
for j in range(1,n+1,2):
    count_j = 0
    for i in range(1,j+1):
        if j%i==0:
            count_j +=1
    if count_j ==8:
        ans +=1
        #print(j)
print(ans)
N = int(input())

answer=0
count=0
 
for i in range(1,N+1,2):
    for j in range(1,int(i**0.5)+1):
        if i%j==0:
            count+=1
    if count==4:
        answer+=1
    count=0
 
print(answer)
n = int(input())
lp = [3,5,7,11,13]

ans = 0
for i in (range(n)):
  li = []
  for k in lp:
    tmp = i+1
    cnt = 0
    while tmp%k == 0:
      tmp //= k
      cnt += 1
    if cnt > 0:
      li.append(cnt)
  if li in [[1,1,1], [3,1]]:
    ans += 1

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

for i in range(1, n+1, 2):
  counter = 0
  for j in range(1, i+1):
    if i%j==0:
      counter += 1
    if counter > 8:
      break
  if counter == 8:
    ans += 1
    
print(ans)
N = int(input())
cnt = 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:
        cnt += 1
print(cnt)
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
ans=0
for i in range(1,n+1):
  if i%2==1 and len(make_divisors(i))==8:
    ans+=1
print(ans)
"""
for i in range(201):
    if i % 2 == 0:
        continue
    cnt = 0
    for j in range(1, i+1):
        if i % j == 0:
            cnt += 1
    if cnt == 8:
        print(i)
        
出力
105
135
165
189
195
"""
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)
a = int(input())
b = [135,189,105,165,195]
ans = 0
 
for i in range(1,a+1):
    if i in b:
        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+1):
    if i%j==0:
      count=count+1
  if count==8:
    ans=ans+1
else:
  print(ans)
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())

res = 0

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

print(res)
N = int(input())

out=0
for i in range(1,N+1):
    cnt=0
    if i%2==1:
        for j in range(1,N+1):
            if i%j==0:
                cnt+=1
        if cnt==8:
            out+=1
print(out)
n = int(input())
cnt = 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:
        cnt+=1
print(cnt)
import math
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)
    return divisors

ans=0
for j in range(1,N+1,2):
    count = make_divisors(j)
    if len(count)==8:
        ans +=1

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

# 約数の数を出してくれる
def make_divisors(n):
    divisors = []
    for i in range(1, int(math.sqrt(n)) + 1):
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n // i)
    return len(divisors)

cnt = 0
# 1からNまでの奇数
for i in range(1, N + 1, 2):
    if make_divisors(i) == 8:
        cnt += 1
print(cnt)
N = int(input())
s = 0
for i in range(N+1):
  if i % 2 == 1:
    t = 0
    for j in range(1,i+1):
      if i % j == 0:
        t += 1
    if t == 8:
      s += 1
print(s)
N=int(input())

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

ans=0
for i in range(1,N+1,2):
    if len(div(i))==8:
        ans+=1
        
print(ans)
N=int(input())
ans=0
for n in range(1,N+1,2):
  _ans=0
  for x in range(1,n+1):
    if n%x==0:
      _ans+=1
  if _ans==8:
    ans+=1
print(ans)
n = int(input())
ans = 0
for k in range(1, n+1, 2):
    cnt = 1
    for i in range(1, k):
        if k%i == 0:
            cnt += 1
    if cnt == 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)
N = int(input())
count = 0
ans = 0
for i in range(1,N+1,2):
    for j in range(1,i+1,2):
        if i%j == 0:
            count += 1
    if(count == 8):
        ans += 1
    count = 0
print(ans)
n = int(input())

ans = 0

for i in range(105, n + 1, 2):
    divisor = []
    for j in range(1, int(i ** 0.5) + 1):
        if i % j == 0:
            divisor.append(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):
    cnt = 0
    for j in range(1,N+1):
        if i % j == 0 and j % 2 == 1:
            cnt += 1
    if cnt == 8:
        ans += 1
print(ans)
n = int(input())
cnt = 0
for i in range(1, n + 1, 2):
    j = 1
    temp = 0
    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)
#!/usr/bin/env python3
import sys
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
n = int(input())
a = [105,135,165,189,195]

if a[0] > n: print(0)
elif a[0] <= n < a[1]: print(1)
elif a[1] <= n < a[2]: print(2)
elif a[2] <= n < a[3]: print(3)
elif a[3] <= n < a[4]: print(4)
elif a[4] <= n: print(5)
N = int(input())

def yaku(n):
  ans = []
  x = int(N ** (1/2))
  for i in range(1, x + 1):
    if n % i == 0:
      if i != n // i:
        if i not in ans:
          ans.append(i)
        if n // i not in ans:  
          ans.append(n // i)
  return len(ans)

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


def main():
    input = sys.stdin.buffer.readline
    n = int(input())
    cnt = [0] * (n + 1)
    for i in range(1, n + 1):
        for j in range(i, n + 1, i):
            cnt[j] += 1
    ans = len([i for i in range(1, n + 1, 2) if cnt[i] == 8])
    print(ans)


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

answer=0

for n in range(1,N+1,2):
    count=0
    for i in range(1,int(pow(n,1/2))+1):
        if n%i==0:
            if n//i!=i:
                count+=2
            else:
                count+=1
    if count==8:
        answer+=1

print(answer)
N = int(input())
ans = 0
for i in range(1,N+1,2):
  now = 0
  for j in range(1,i+1):
    if i%j == 0:
      now += 1
  if now == 8:
    ans += 1
print(ans)
N = int(input())

d = []
cnt = 0
for i in range(1,N+1):
    if i % 2 == 1:
        for j in range(1,int(i**0.5)+1):
            if i % j == 0:
                d.append(j)
                if j != i//j:
                    d.append(i//j)
        if len(d) == 8:
            cnt +=1
        d = []
print(cnt)
import math
def yakusu(n):
    count = 0
    for i in range(1,int(math.sqrt(n))+1+1):
        if n % i == 0:
            count += 2
    return count
N = int(input())
c = 0
for i in range(1,N+1,2):
    if yakusu(i) == 8:
        c+=1

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

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

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


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]


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

print(count)
def check(x):
    count = 0
    for num in range(1,x+1,2):
        if x % num == 0:
            count += 1
    return count

N = int(input())
ans = 0
for x in range(1,N+1):
    if check(x) == 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())

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

print(count)
N = int(input())
cnt = 0
for n in range(1, N + 1, 2):
    route_n = int(n ** (1 / 2))
    by = [] 
    for i in range(1, route_n + 1, 2):
        if n % i == 0:
            by.append(i)
            a = n // i
            if a != i:
                by.append(a)
    if len(by) == 8:
        cnt += 1

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

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

print(ans)
def divisor(n):
    i = 1
    ans_div = []
    while i * i <= n:
        if n%i == 0:
            ans_div.append(i)
            ans_div.append(n // i)
        i += 1
    ans_div = list(set(ans_div))
    return ans_div
import sys
input = sys.stdin.readline
N = int(input())
count = 0
if N < 105:
    print(0)
else:
    for odd in range(105, N+1, 2):
        li = divisor(odd)
        if len(li) == 8:
            count += 1
    print(count)
#ABC106B
def main():
    import sys
    N = int(sys.stdin.readline())
    result = 0
    
    for i in range(1, N+1, 2):
        result +=yakusu_cnt(i)
    print(result)
    
def yakusu_cnt(n):
    ans = 0
    for i in range(1, n+1):
        if n%i==0:
            #print(i)
            ans+=1
    if ans ==8:
        return 1
    else:
        return 0


if __name__=='__main__':
    main()
n=input()

s=0
yakusu=0



for i in range(1,int(n)+1):
    s=0
    if i%2!=0:
        for k in range(1,i+1):
            if i%k==0:
                s+=1    
    if s==8:
        yakusu+=1         

print(yakusu)
def make_divisors(n) -> list:
    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(105, N+1, 2):
    if len(make_divisors(i)) == 8:
        cnt += 1

print(cnt)
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)
#!/usr/bin/env/ python3
#S = input()
N = int(input())
#A, B, C = input().split()
#N, M = map(int, input().split())

#N = int(input())
#A = [int(x) for x in input().split()]

#H, W = map(int, input().split())
#S = [input() for _ in range(H)]
#print(S[0][1])

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")
N = int(input())

def factorize(x):
    results = []
    for i in range(1, x+1):
        if i*i == x:
            results.append(i)
            break
        if i*i > x:
            break
        else:
            if x % i == 0:
                results.append(i)
                results.append(x // i)
    return results

ans = 0
for i in range(1, N+1, 2):
    if len(factorize(i)) == 8:
        ans += 1
print(ans)
N=int(input())
ans=0
for i in range(1,N+1,2):
  y=0
  for j in range(1,i+1):
    if i%j == 0:
      y+=1
  if y==8:
    ans+=1
print(ans)
def 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 != 0 and len(divisors(i)) == 8:
        ans += 1
print(ans)
N = int(input())
#cnt = 0
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)
# -*- coding: utf-8 -*-
import sys
sys.setrecursionlimit(10**9)
INF=10**18
MOD=10**9+7
def input(): return sys.stdin.readline().rstrip()

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

if __name__ == '__main__':
    main()
n=int(input())
ans=0
count=0

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

ans = 0
for i in range(1, n+1, 2):
    c = 0
    for k in range(1, i+1):
        if i % k == 0:
            c += 1
    if c == 8:
        ans += 1
print(ans)
N = int(input())
A = 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:
        A += 1
print(A)
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
        else:
            continue
    if cnt == 8:
        ans += 1
print(ans)
n=int(input())
count=0
ans=0
for i in range(1,n+1):
  if i%2!=0:
    count=0
    for j in range(1,n+1):
      if i%j==0:
        count+=1
    if count==8:
      ans+=1
print(ans)
# -*- coding: utf-8 -*-
# 標準入力を取得
N = int(input())

# 求解処理
ans = 0
for n in range(1, N + 1, 2):
    div_count = 0
    for i in range(1, n + 1):
        div_count += (n % i == 0)

    ans += (div_count == 8)

# 結果出力
print(ans)