def is_truncatable(n): if n < 10: return False n_str = str(n) for i in range(len(n_str)-1,0,-1): if not is_prime(int(n_str[:i])) or \ not is_prime(int(n_str[i:])): return False return True
def consider(b): print("Considering %d" % (b)) max_len = 0 max_a = 0 n_a = 0 for try_a in range(1000): if n_a % 100 == 0: sys.stdout.write("%s " % (try_a)) sys.stdout.flush() for a in -try_a, try_a: n_a += 1 n = 0 v = value(a, b, 0) while True: if (v < max_prime and v not in primes) or not is_prime(v): break else: n += 1 v = value(a, b, n) if n > max_len: max_len = n max_a = a sys.stdout.write("\n") return max_len, max_a
def _execute_command(self): s = self._command_var.get() op_code = int(self._op_code) if op_code == 2: l = read_int_array(s, MIN_VALUE, MAX_VALUE) if l is None or len(l) != 2 or l[0] > l[1]: messagebox.showerror('Error', 'Wrong numbers') else: m, n = l[0], l[1] self._result_text.set_text(pn.get_random_prime_number(m, n)) elif op_code == 3: value = read_int(s, MIN_VALUE, MAX_VALUE) if value is None: messagebox.showerror('Error', 'Wrong length of array') else: import time first = time.time() array = pn.get_random_prime_array(value) end = time.time() print('Time of execute method: {0}'.format(end - first)) self._result_text.set_text(self._dump_json(array)) elif op_code == 4: l = read_int_array(s, MIN_VALUE, MAX_VALUE) if l is None: messagebox.showerror('Error', 'Wrong array') else: self._result_text.set_text(pn.is_relative_primes(l)) elif op_code == 5: l = read_int_array(s, MIN_VALUE, MAX_VALUE) if l is None: messagebox.showerror('Error', 'Wrong array') else: self._result_text.set_text(pn.is_pairwise_primes(l)) elif op_code == 6: value = read_int(s, MIN_VALUE, MAX_VALUE) if value is None: messagebox.showerror('Error', 'Wrong number') else: self._result_text.set_text(pn.get_next(value, MAX_VALUE)) elif op_code == 7: value = read_int(s, MIN_VALUE, MAX_VALUE) if value is None: messagebox.showerror('Error', 'Wrong number') else: self._result_text.set_text(pn.get_prev(value, MIN_VALUE)) elif op_code == 8: value = read_int(s, MIN_VALUE, MAX_VALUE) if value is None: messagebox.showerror('Error', 'Value must be in range(1, 10^9)') else: self._result_text.set_text(pn.is_prime(value))
def is_truncatable(n): log_n = len(str(n)) - 1 f1 = 10 f2 = 10**log_n for i in range(log_n + 1): t1 = n % f1 if not is_prime(t1): #print("Rejecting %d because %d not prime"%(n,n%f1)) return False t2 = n // f2 if not is_prime(t2): #print("Rejecting %d because %d not prime"%(n,n//f2)) return False f1 *= 10 f2 //= 10 return True
def is_right_truncatable(n): if n < 10: return False while n > 0: if not is_prime(n): return False n //= 10 return True
def dist_primes(path, cities, prime_list, i): step = i + 2 # see above for arguments on this #make exception if i = len(path)-1, then it has to go back to 0 if (i == len(path) - 1): if (step % 10 == 0): #if step % 10 and not prime, take longer if is_prime(step, prime_list): return dist(cities, path[i], 0) else: return (1.10 * dist(cities, path[i], 0)) else: return dist(cities, path[i], 0) #normal scenario, where i is in the middle if (step % 10 == 0): #if step % 10 and not prime, take longer if is_prime(step, prime_list): return dist(cities, path[i], path[i + 1]) else: return (1.10 * dist(cities, path[i], path[i + 1])) else: return dist(cities, path[i], path[i + 1])
def solution(n=9): """find the biggest pandigital prime of n digits or less""" while n>1: pds = pandigital.pandigital_list(n)[::-1] for x in pds: if prime_numbers.is_prime(x): return x n = n - 1 return 'none'
def is_left_truncatable(n): if n < 10: return False factor = 10**(len(str(n)) - 1) while n > 0: if not is_prime(n): return False n %= factor factor //= 10 return True
def main(): a = int(sys.argv[1]) b = int(sys.argv[2]) print("Considering n^2 + %dn + %d" % (a, b)) n = 0 v = value(a, b, n) vals = [] while is_prime(v): vals.append(v) n += 1 v = value(a, b, n) print("%d terms: %s" % (len(vals), " ".join([str(x) for x in vals])))
def solution(): primes = set(prime_numbers.primes(10000000)) count = 0 running_total = 0 i = 2 while count < 11 and i < 12: ndigit_candidates = candidates(i) for x in ndigit_candidates: if prime_numbers.is_prime(t_set(x)): print(x) count = count + 1 running_total = running_total + x i = i + 1 return running_total
def test_is_prime(): assert is_prime(2) == True assert is_prime(3) == True assert is_prime(-1) == False assert is_prime(4) == False
def test_string_input(self): prime = is_prime("2") self.assertFalse(prime)
def test_bigger_composite(self): prime = is_prime(1000000008) self.assertFalse(prime)
def test_if_number_is_prime2(self): self.assertEqual(is_prime(7), True)
def test_input_negative_number(self): prime = is_prime(-234) self.assertFalse(prime)
def test_input_is_two (self): self.assertEqual (is_prime (2), 2)
def test_input_is_not_integer(self): self.assertEqual (is_prime("cats"), "Invalid")
input("Enter for continue...") elif op_code == 6: s = input("Enter value: ") value = read_int(s, MIN_VALUE, MAX_VALUE) if value is None: print("Wrong number") else: print(pn.get_next(value, MAX_VALUE)) input("Enter for continue...") elif op_code == 7: s = input("Enter value: ") value = read_int(s, MIN_VALUE, MAX_VALUE) if value is None: print("Wrong number") else: print(pn.get_prev(value, MIN_VALUE)) input("Enter for continue...") elif op_code == 8: s = input() value = read_int(s, MIN_VALUE, MAX_VALUE) if value is None: print("Value must be in range(1, 10^9)") else: print(pn.is_prime(value)) input("Enter for continue...") elif op_code == 9: break
def test_is_prime(): assert is_prime(-1) is False assert is_prime(0) is False assert is_prime(4) is False assert is_prime(6) is False assert is_prime(8) is False assert is_prime(9) is False assert is_prime(10) is False assert is_prime(12) is False assert is_prime(14) is False assert is_prime(15) is False assert is_prime(16) is False assert is_prime(18) is False assert is_prime(20) is False assert is_prime(21) is False assert is_prime(22) is False assert is_prime(24) is False assert is_prime(25) is False assert is_prime(26) is False assert is_prime(27) is False assert is_prime(28) is False assert is_prime(30) is False assert is_prime(32) is False assert is_prime(33) is False assert is_prime(34) is False assert is_prime(35) is False assert is_prime(36) is False assert is_prime(38) is False assert is_prime(39) is False assert is_prime(40) is False assert is_prime(42) is False assert is_prime(44) is False assert is_prime(45) is False assert is_prime(46) is False assert is_prime(48) is False assert is_prime(49) is False assert is_prime(50) is False assert is_prime(51) is False assert is_prime(52) is False assert is_prime(54) is False assert is_prime(55) is False assert is_prime(56) is False assert is_prime(57) is False assert is_prime(58) is False assert is_prime(60) is False assert is_prime(62) is False assert is_prime(63) is False assert is_prime(64) is False assert is_prime(65) is False assert is_prime(66) is False assert is_prime(68) is False assert is_prime(69) is False assert is_prime(70) is False assert is_prime(72) is False assert is_prime(74) is False assert is_prime(75) is False assert is_prime(76) is False assert is_prime(77) is False assert is_prime(78) is False assert is_prime(80) is False assert is_prime(81) is False assert is_prime(82) is False assert is_prime(84) is False assert is_prime(85) is False assert is_prime(86) is False assert is_prime(87) is False assert is_prime(88) is False assert is_prime(90) is False assert is_prime(91) is False assert is_prime(92) is False assert is_prime(93) is False assert is_prime(94) is False assert is_prime(95) is False assert is_prime(96) is False assert is_prime(98) is False assert is_prime(99) is False assert is_prime(2) is True assert is_prime(3) is True assert is_prime(5) is True assert is_prime(7) is True assert is_prime(11) is True assert is_prime(13) is True assert is_prime(17) is True assert is_prime(19) is True assert is_prime(23) is True assert is_prime(29) is True assert is_prime(31) is True assert is_prime(37) is True assert is_prime(41) is True assert is_prime(43) is True assert is_prime(47) is True assert is_prime(53) is True assert is_prime(59) is True assert is_prime(61) is True assert is_prime(67) is True assert is_prime(71) is True assert is_prime(73) is True assert is_prime(79) is True assert is_prime(83) is True assert is_prime(89) is True assert is_prime(97) is True
def test_bigger_prime_number(self): prime = is_prime(1000000007) self.assertTrue(prime)
def test_is_two_prime(self): prime = is_prime(2) self.assertTrue(prime)
def test_valid_prime(self): prime = is_prime(7) self.assertTrue(prime)
def test_is_prime (self): self.assertEqual (is_prime(3), 3)
import prime_numbers as pn if __name__ == '__main__': for idx in range(1, 101): if pn.is_prime(idx): print(idx, end=' ')
def test_input_is_not_negative(self): self.assertEqual (is_prime (-5), "Negative input")
def test_non_integer_input(self): prime = is_prime(2.1) self.assertFalse(prime)
def test_if_number_is_prime(self): self.assertEqual(is_prime(1), False)
def test_is_one_prime(self): prime = is_prime(1) self.assertFalse(prime)
def gen_prime_list(maxnumber=1000): primes = [] for i in range(1, maxnumber + 1): if is_prime(i): primes.append(i) return primes
def test_composite_number(self): prime = is_prime(8) self.assertFalse(prime)