lostyazilim

Benimki daha kısa! (Forum içi yarışma)

15 Mesajlar 7.718 Okunma
lstbozum
wmaraci reklam

KartPazar KartPazar Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 03.05.2013
  • Yaş/Cinsiyet 33 / E
  • Meslek Ön Ödemeli Kart Satışı
  • Konum KKTC
  • Ad Soyad B** U**
  • Mesajlar 1135
  • Beğeniler 160 / 373
  • Ticaret 16, (%100)
Yabanci bir forumda yapiliyordu, burada yapildi mi bilmiyorum. Spesifik bir islem icin yazdiginiz kodu amaci ile birlikte paylasiyorsunuz ve diger forum uyeleri daha kisasini yazmaya calisiyorlar. Yada farkli bir islem yapan bir kod paylasarak yeni bir yarisma da baslatabilirsiniz.

Acilisi, iki girdi arasindaki asal sayilari veren bir kod ile ben yapayim.
n1=int(input('First number: '))
n2=int(input('Second number: '))
for n in range(n1,n2):
i=2
while i if n%i==0:
break
else:
i=i+1
else:
print(n)
n=n+1


Bu arada ben bunu python ile yazdim. Siz tum dillerde kod paylasabilirsiniz.
hyppia Yeninesil44 beyuzman

kişi bu mesajı beğendi.

wmaraci
reklam

SoftwareDeveloper SoftwareDeveloper WM Aracı Kullanıcı
  • Üyelik 18.08.2016
  • Yaş/Cinsiyet 29 / E
  • Meslek Bilgisayar Mühendisliği
  • Konum İstanbul Avrupa
  • Ad Soyad E** S**
  • Mesajlar 79
  • Beğeniler 4 / 36
  • Ticaret 1, (%100)
Şimdi bunu birkaç şekilde kısaltmak mümkün. Birincisi satır sayısı bakımından. İkincisi performans açısından.

Öncelikle kodun kısaltılmış ilk hali:


from __future__ import print_function
import math
n1, n2 = int(input('First number: ')), int(input('Second number: '))
asal = lambda x: print(x) if all(x % s != 0 for s in range(2, int(math.sqrt(x)+1))) == True else False
asallar = map(asal, range(n1, n2))


Lambda fonksiyonları kullanarak kodu 6 satıra indirdik. Şimdi biraz daha kısaltalım :


from __future__ import print_function
import math
n1, n2 = int(input('First number: ')), int(input('Second number: '))
asallar = map(lambda x: print(x) if all(x % s != 0 for s in range(2, int(math.sqrt(x)+1))) == True else False, range(n1, n2))


asal lambda fonksiyonunu map in içine alarak kodu 4 satıra indirdik. Ayrıca sen asal kontorlü yaparken sayının kendisine kadar böldürtmüşsün. Bu çok uzun maliyetli bir yöntem. Bir sayı karekökünden daha yüksek bir sayıya zaten bölünemez. O yüzden sayının kareköküne kadar kontrol etmek yeterli.. Bu da performans açısından kıslatma...
 

 

php, java, python - django, nodejs, vuejs, reactjs, angularjs, c# asp.net mvc...

Yeninesil44 Yeninesil44 Kullanıcı
  • Üyelik 28.02.2015
  • Yaş/Cinsiyet 34 / E
  • Meslek web programlama
  • Konum Malatya
  • Ad Soyad O** D**
  • Mesajlar 1034
  • Beğeniler 282 / 281
  • Ticaret 18, (%100)
php short_tag gibi bide short_code ayarı koysa süslü parantezler, ; ler felan gitse çok güzel olur die düsünüorum :D bide bu python paylaşımlı hostinglerde çalışıyormu bilgisi olan varmı?
 

 

MultiAnaliz.com

HidrolikAdam HidrolikAdam yok Kullanıcı
  • Üyelik 17.10.2013
  • Yaş/Cinsiyet 27 / E
  • Meslek yok.
  • Konum İstanbul Anadolu
  • Ad Soyad E** Ç**
  • Mesajlar 475
  • Beğeniler 316 / 114
  • Ticaret 1, (%100)
Yönetimden talebimdir, böyle muazzam konular arşivlenmeli ayrı bir bölmede sergilenmeli 😂😂😂
EmreBesiir

kişi bu mesajı beğendi.

Mimarlık/Bilgisayar Mühendisliği Öğrencisi. Kendi halinde.
wmaraci
wmaraci

bhdstandart bhdstandart WM Aracı Kullanıcı
  • Üyelik 18.04.2017
  • Yaş/Cinsiyet 34 / E
  • Meslek icra Takip Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad B** D**
  • Mesajlar 487
  • Beğeniler 64 / 56
  • Ticaret 0, (%0)
Bence bu konuya ünlü marka sponsor olmalı.
EmreBesiir

kişi bu mesajı beğendi.

İcra Takip Uzmanı

BTmirai BTmirai Exploit Developer E-Mail Onaysız
  • Üyelik 28.03.2017
  • Yaş/Cinsiyet 29 / E
  • Meslek Developer
  • Konum Diğer
  • Ad Soyad K** G**
  • Mesajlar 57
  • Beğeniler 8 / 7
  • Ticaret 1, (%100)
n1=int(input('First number: '))
n2=int(input('Second number: '))
for n in range(n1,n2):i=2
while ielse:i=i+1
else:print(n)
n=n+1
 

 

ismail ismail WM Aracı Kullanıcı
  • Üyelik 08.09.2014
  • Yaş/Cinsiyet 24 / E
  • Meslek Yazılım Geliştiricisi
  • Konum Sakarya
  • Ad Soyad I** K**
  • Mesajlar 1177
  • Beğeniler 582 / 327
  • Ticaret 3, (%100)
Evet galiba biraz kısalttım.
n1=int(input('Frst num: '))
n2=int(input('Secnd num: '))
for n in range(n1,n2):
i=2
while i if n%i==0:
break
else:
i=i+1
else:
print(n)
n=n+1
 

 

VipTema VipTema Vip Tema Web Tasarım Kullanıcı
  • Üyelik 29.06.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Vip Tema Web Tasarım A.Ş.
  • Konum Tekirdağ
  • Ad Soyad Ö** I**
  • Mesajlar 1393
  • Beğeniler 704 / 703
  • Ticaret 21, (%100)
Konu wmaracinin facebook sayfasinda da yayınlanmış :) Konu sahibi tarihe geçti.
ilyasakkus DenizOZTURK MesuT

kişi bu mesajı beğendi.

Rockabilly Rockabilly Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 05.03.2017
  • Yaş/Cinsiyet 30 / E
  • Meslek Öğrenci
  • Konum Uşak
  • Ad Soyad H** K**
  • Mesajlar 2
  • Beğeniler 1 / 0
  • Ticaret 0, (%0)
Konuyu vakti zamanında gördüm. Lise 1 de öğrendiğim kod ne işime yarar demiştim meğer Wmaraci'da acayip prim yapmama yarayacakmış niye umursamadıysam... :D
 

 

BigCoder BigCoder Sözlük Yazılımı Kullanıcı
  • Üyelik 07.11.2015
  • Yaş/Cinsiyet 40 / E
  • Meslek Yazılım
  • Konum Konya
  • Ad Soyad F** K**
  • Mesajlar 41
  • Beğeniler 5 / 10
  • Ticaret 2, (%100)
guzel bir yarisma
 

 

Software by BigCoder
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al