Aritmetiğin temel teoremi bize şunu söyler: "1'den büyük her doğal sayı, sonlu sayıda birtakım asal sayının pozitif kuvvetlerinin çarpımı şeklinde yazılır. Bu yazılış tek türlüdür."
Bu fikirden yola çıkarak devam etmek istiyorum. Sorudaki elde etmeye çalıştığımız sayı A olsun. Aritmetiğin temel teoreminden, A=pa11⋯pann olacak şekilde tek türlü p1,…,pn asal sayıları ve i=¯1,n , ai>0 sayıları vardır. Bu pi'lere karşılık gelen ai leri belirlemeye çalışalım. paii=t ise ailog(pi)=log(t) dir. Düzenlersek ai=log(t)log(pi) olur. Buradan şu yorumu yapabiliriz. Verilen bir k sayısından küçük eşit herhangi bir asala baktığımızda,bu asalın en büyük kaçıncı kuvvetinin k dan küçük eşit kaldığını logaritmalı yaptığımız işlemle bulabiliriz.
Örneğin k=30 ve p=3 için, log(30)log(3)=3.095⋯ dir. Yani 3'ün 30'dan küçük eşit kalacak şekilde en büyük tam kuvveti log(30)log(3)=3.095⋯ nin tam kısmı olan 3 olur.
Soruya geri dönersek k'dan küçük eşit olan bütün pi asal sayıları için ai'leri yukarıdaki gibi hesapladığımızda, 1'den k'ya kadar olan bütün sayılara bölünebilen en küçük sayı pa11⋯pann olur.
import math
def is_prime(n) :
for i in range(2,int(n**0.5)+1) :
if n % i == 0 :
return False
return True
k=int(input("k degerini girin:"))
i=2
A=1
while i <= k :
if is_prime(i) :
a = int(math.log(k) / math.log(i))
A = A * (i**a)
i += 1
print(A)