AI Artificial Intelligence

Viele Teile ergeben ein Ganzes! Die Kunst unwichtige Details zu vermeiden!

Primzahlen erkennen und generieren

# Checking and generating prime numbers
# 2022 Ehrenfried Stuhlpfarrer

from kanren import isvar, run, membero
from kanren.core import success
from kanren.core import fail
from kanren.core import goaleval
from kanren.core import condeseq
from kanren.core import eq
from kanren.core import var
from sympy.ntheory.generate import prime, isprime
import itertools as it

# Überprüfen auf Primzahlen von einer gegebenen Liste
def prime_check(M):
if isvar(M):
return condeseq([(eq,M,p)] for p in map(prime, it.count(1)))
else:
return success if isprime(M) else fail

# Variable deklarieren und für das Finden verwenden
M = var()
print((set(run(0,M,(membero,M,(1,3,4,5,6,7,9,10,11,12,14,15,20,21,22,23,29,30,41,44,52,55,59,61,89,8867)),(prime_check,M)))))

# Generieren von Primzahlen
print((run(50,M,prime_check(M))))
-------------------------------------------------------------------------
Ausgabe:
{3, 8867, 5, 7, 41, 11, 61, 23, 89, 59, 29}
(2, 3, 5, 7, 11, 13, 17, 19, 23, 29)

KI

Copyright © 2022. All Rights Reserved. Ehrenfried Stuhlpfarrer