A positive integer is called a 2-3-integer, if it is equal to 2x·3y for some non-negative integers x and y. In other words, these integers are such integers that only have 2 and 3 among their prime divisors. For example, integers 1, 6, 9, 16 and 108 — are 2-3 integers, while 5, 10, 21 and 120 are not.
Print the number of 2-3-integers on the given segment [l, r], i. e. the number of sich 2-3-integers t that l ≤ t ≤ r.
The only line contains two integers l and r (1 ≤ l ≤ r ≤ 2·109).
Print a single integer the number of 2-3-integers on the segment [l, r].
1 10
7
100 200
5
1 2000000000
326
In the first example the 2-3-integers are 1, 2, 3, 4, 6, 8 and 9.
In the second example the 2-3-integers are 108, 128, 144, 162 and 192.
Python第一步,cf纸尿裤
临时学了一把Python,调的我好苦
# -*- coding: utf-8 -*-
"""
Created on Sun Mar 18 15:55:16 2018
@author: VampireWeekend
"""
import Queue
q=Queue.Queue()
q.put(2)
q.put(3)
l,r=(int(x) for x in raw_input().split())
ceil=2e9
a=[1,2,3]
while not q.empty():
now=q.get()
# print a
if now*2<=ceil and a.count(now*2)==0:
q.put(now*2)
a.append(now*2)
if now*3<=ceil and a.count(now*3)==0:
q.put(now*3)
a.append(now*3)
ans=0
for i in a:
if i>=l and i<=r:
ans+=1
print ans
to be continued...