ผมเล่นเกม แล้วโจทย์คือให้เขียนโปรแกรม เพื่อหาจำนวนของจำนวนเฉพาะทั้งหมดที่น้อยกว่า n (ที่เป็น input)
เช่น n = 11 จะได้ว่ามี 2 3 5 7 ก็คือมี 4 ตัวให้แสดงค่า 4 ออกมา ผมรันได้ผ่านทุก เคสยกเว้นเคส สุดท้ายที่มี input เป็น 100,000
เกิด time out ขึ้น ผมเลยลองไปดูของคนอื่นที่ run ผ่าน ก็เห็นว่าโค้ด ค่อนข้างคล้ายๆ กัน เลยสงสัยว่าผมผิดตรงไหนรึเปล่าครับ
รบกวนช่วยดูให้หน่อยนะครับ Big O เป็น n^2 เท่ากัน
ของคนอื่น
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
s=0
t=2
n=int(input())
while t<n:
for j in range(int(t**0.5)+1):
if j>1and t%j==0:break
else:s+=1
t+=1
print(s)
ของผม
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
c=0 //เอาไว้นับ
n = int(input())
i=2 //จำนวนเฉพาะเริ่มที่ 2
while(i<n):
for j in range(2,i):
if i%j==0:
break
else:
c+=1
i+=1
print(c) // แสดงค่า
ทำไม code ผม run แล้ว time out (python)
เช่น n = 11 จะได้ว่ามี 2 3 5 7 ก็คือมี 4 ตัวให้แสดงค่า 4 ออกมา ผมรันได้ผ่านทุก เคสยกเว้นเคส สุดท้ายที่มี input เป็น 100,000
เกิด time out ขึ้น ผมเลยลองไปดูของคนอื่นที่ run ผ่าน ก็เห็นว่าโค้ด ค่อนข้างคล้ายๆ กัน เลยสงสัยว่าผมผิดตรงไหนรึเปล่าครับ
รบกวนช่วยดูให้หน่อยนะครับ Big O เป็น n^2 เท่ากัน
ของคนอื่น
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
ของผม
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้