






"""simple docstring"""






from __future__ import annotations

from collections.abc import Generator



def 					_A			() ->       Generator[int, None, None]:
    """simple docstring"""






    SCREAMING_SNAKE_CASE_      :  dict[int, int]    						=		{}
    SCREAMING_SNAKE_CASE_      :  List[Any]    						=		2
    while True:
        SCREAMING_SNAKE_CASE_      :  int    						=		factor_map.pop(__a    ,				__a							)
        if factor:
            SCREAMING_SNAKE_CASE_      :  Union[str, Any]    						=		factor + prime
            while x in factor_map:
                x += factor
            SCREAMING_SNAKE_CASE_      :  List[str]    						=		factor
        else:
            SCREAMING_SNAKE_CASE_      :  List[str]    						=		prime
            yield prime
        prime += 1



def 					_A			(__a = 1e10							) ->       int:
    """simple docstring"""






    SCREAMING_SNAKE_CASE_      :  Tuple    						=		sieve()

    SCREAMING_SNAKE_CASE_      :  Optional[int]    						=		1
    while True:
        SCREAMING_SNAKE_CASE_      :  Union[str, Any]    						=		next(__a							)
        if (2 * prime * n) > limit:
            return n
        # Ignore the next prime as the reminder will be 2.
        next(__a							)
        n += 2


if __name__ == "__main__":
  print(solution())










"""simple docstring"""






import argparse
import logging
import pickle
from collections import Counter


logging.basicConfig(
    format="""%(asctime)s - %(levelname)s - %(name)s - %(message)s""", datefmt="""%m/%d/%Y %H:%M:%S""", level=logging.INFO
)
UpperCAmelCase_   : Dict   			= logging.getLogger(__name__)

if __name__ == "__main__":
  UpperCAmelCase_   : List[str]   			= argparse.ArgumentParser(
      description="""Token Counts for smoothing the masking probabilities in MLM (cf XLM/word2vec)"""
  )
  parser.add_argument(
      """--data_file""", type=str, default="""data/dump.bert-base-uncased.pickle""", help="""The binarized dataset."""
  )
  parser.add_argument(
      """--token_counts_dump""", type=str, default="""data/token_counts.bert-base-uncased.pickle""", help="""The dump file."""
  )
  parser.add_argument("""--vocab_size""", default=30522, type=int)
  UpperCAmelCase_   : Optional[Any]   			= parser.parse_args()

  logger.info(f'''Loading data from {args.data_file}''')
  with open(args.data_file, """rb""") as fp:
    UpperCAmelCase_   : Union[str, Any]   			= pickle.load(fp)

  logger.info("""Counting occurrences for MLM.""")
  UpperCAmelCase_   : Any   			= Counter()
  for tk_ids in data:
    counter.update(tk_ids)
  UpperCAmelCase_   : List[Any]   			= [0] * args.vocab_size
  for k, v in counter.items():
    UpperCAmelCase_   : Dict   			= v

  logger.info(f'''Dump to {args.token_counts_dump}''')
  with open(args.token_counts_dump, """wb""") as handle:
    pickle.dump(counts, handle, protocol=pickle.HIGHEST_PROTOCOL)


