예제 #1
0
def test__Sieve__second_level_compounding_repr():
    even_sieve = Sieve(is_even)
    positive_sieve = Sieve(is_positive)
    thirteen_sieve = Sieve(is_thirteen)
    compound_sieve = (even_sieve & positive_sieve) | thirteen_sieve
    assert repr(
        compound_sieve) == "Sieve((is_even & is_positive) | is_thirteen)"
예제 #2
0
def test__Sieve__second_level_compounding():
    even_sieve = Sieve(is_even)
    positive_sieve = Sieve(is_positive)
    thirteen_sieve = Sieve(is_thirteen)
    compound_sieve = (even_sieve & positive_sieve) | thirteen_sieve
    assert compound_sieve(8) is True
    assert compound_sieve(-8) is False
    assert compound_sieve(13) is True
예제 #3
0
def test__Sieve__intersection():
    even_sieve = Sieve(is_even)
    positive_sieve = Sieve(is_positive)
    intersection_sieve = even_sieve & positive_sieve
    assert intersection_sieve(8) is True
    assert intersection_sieve(-8) is False
    assert intersection_sieve(9) is False
    assert intersection_sieve(-9) is False
예제 #4
0
파일: area.py 프로젝트: Alberdi/rogueforce
 def __init__(self,
              bg,
              sieve_function=None,
              general=None,
              reach_function=None,
              selfcentered=False):
     self.bg = bg
     self.general = general
     self.sieve = Sieve(general, sieve_function) if sieve_function else None
     self.reach = Sieve(general, reach_function) if reach_function else None
     self.selfcentered = selfcentered
 def __init__(self, n_holders, min_holder, secret, verbose=False):
     self.__verbose = verbose
     self.__sieve = Sieve()
     self.__n_holder = n_holders
     self.__min_holder = min_holder
     self.__holders = [Holder() for _ in range(n_holders)]
     self.__secret = secret
     self.__generateHolders()
def main():

    sieve = Sieve()

    number_of_holders = int(input("Input number of holders : "))
    while number_of_holders < 1:
        number_of_holders = int(
            input("Number must be larger than one. Try again : "))
    min_number_to_solve = int(
        input("Input minimum number of holders to retrieve the secret : "))
    while min_number_to_solve > number_of_holders or min_number_to_solve < 1:
        min_number_to_solve = int(
            input(
                "Number of minimum must be between 1 and number of holders. Try again : "
            ))
    secret = int(input("Input secret : "))
    while secret < 0:
        secret = int(input("Secret must not be less than zero. Try again :"))

    # SSS Object
    generation_start = time.time()
    SSS = AsmuthBloom(number_of_holders,
                      min_number_to_solve,
                      secret,
                      verbose=True)
    generation_end = time.time()
    # Sequence
    print("Sequence")
    for sequence in SSS.getSequence():
        print(sequence)

    # Print holders
    for holder in SSS.getHolders():
        print(holder)

    # Solve secret
    # For now choice is totally random
    solve_start = time.time()
    secret = SSS.solve()
    solve_end = time.time()
    print("Generation time (s): " + str(generation_end - generation_start))
    print("Solving time (s): " + str(solve_end - solve_start))

    print(secret)
예제 #7
0
def test__Sieve__union_repr():
    even_sieve = Sieve(is_even)
    positive_sieve = Sieve(is_positive)
    intersection_sieve = even_sieve | positive_sieve
    assert repr(intersection_sieve) == "Sieve(is_even | is_positive)"
예제 #8
0
def test__Sieve__negation_repr():
    sieve = Sieve(is_even)
    is_odd = -sieve
    assert repr(is_odd) == "Sieve(not(is_even))"
예제 #9
0
def test__Sieve__negation():
    sieve = Sieve(is_even)
    is_odd = -sieve
    assert is_odd(8) is False
    assert is_odd(9) is True
예제 #10
0
def test__Sieve__call():
    sieve = Sieve(is_even)
    assert sieve(8) is True
    assert sieve(9) is False
예제 #11
0
def test__Sieve__repr():
    sieve = Sieve(is_even)
    assert repr(sieve) == "Sieve(is_even)"
예제 #12
0
def test__Sieve__creation():
    sieve = Sieve(is_even)
예제 #13
0
def test__Sieve__empty():
    sieve = Sieve()
    assert repr(sieve) == "Sieve(True)"
    assert sieve(10) is True
    assert sieve("mille") is True
    assert sieve({}) is True
예제 #14
0
    ovpn_path = results.ovpn_path
    config_path = results.config_path
    outfile = results.outfile
    date = results.date
    timeout = results.timeout

    try:
        is_admin = os.getuid() == 0
    except AttributeError:
        is_admin = ctypes.windll.shell32.IsUserAnAdmin() != 0

    if not is_admin:
        raise Exception('Please run as root/admin, since OpenVPN needs admin privileges')

    if os.path.isfile('output/' + outfile):  # Check if file is existent, if not, remove dates and proceed
        combos = 'output/' + outfile
    else:
        sv = Sieve(date=date, outfile=outfile)
        sv.filter()
        combos = sv.write()

    if config_path is None:
        for filename in os.listdir('ovpn/'):
            if filename.endswith('.ovpn'):
                config_path = 'ovpn/' + filename
                break
    cn = Connector(ovpn_path=ovpn_path, config_path=config_path, combos=combos,
                   timeout=timeout)
    cn.unpack()
    cn.connect()
예제 #15
0
파일: e60.py 프로젝트: XZentus/python
# -*- coding: utf-8 -*-
"""
Created on Fri Nov 30 10:55:07 2018

@author: XZentus
"""

from math import log10

from sieve import Sieve

limit = 10000

sieve = Sieve(100000000)


def concat_nums(n1, n2):
    return n1 * 10**(1 + int(log10(n2))) + n2


def check_pair(n1, n2, sieve=sieve):
    is_prime = sieve.is_prime
    return is_prime(concat_nums(n1, n2)) and is_prime(concat_nums(n2, n1))


def check_collect(lst, elements_to_add):

    next_prime = sieve.next_prime
    is_prime = sieve.is_prime

    if elements_to_add == 0: