จำนวนเฉพาะ (Prime Number) 6 ตัวแรก คือ 2, 3, 5, 7, 11 และ 13 จะเห็นได้ว่า จำนวนเฉพาะ ลำดับที่ 6 คือ 13
จำนวนเฉพาะ ลำดับที่ 10,001 คืออะไร
(โจทย์นี้แปลมาจาก projecteuler.net สามารถเผยแพร่ภายใต้ลิขสิทธิ์ CC BY-NC-SA 2.0 UK )
จำนวนเฉพาะ (Prime Number) 6 ตัวแรก คือ 2, 3, 5, 7, 11 และ 13 จะเห็นได้ว่า จำนวนเฉพาะ ลำดับที่ 6 คือ 13
จำนวนเฉพาะ ลำดับที่ 10,001 คืออะไร
(โจทย์นี้แปลมาจาก projecteuler.net สามารถเผยแพร่ภายใต้ลิขสิทธิ์ CC BY-NC-SA 2.0 UK )
ของเซฟครับ
Rain’s answer for #7
@STGSafe
ชัดเจน: 1/3 สร้างสรรค์: 2/3 กระชับ 1/3 ความเร็ว 2/3
Comment: ใช้ for loop ไม่น่าเหมาะสมครับ เพราะเราไม่รู้ว่ามันจะไปถึง 10000000 การใช้ while lop เหมาะกว่า อีกอย่าง เวลามีเลขใหญ่ๆแบบนี้ ใช้ * ดีกว่าแล้วใส่ในตัวแปรตัวเดียวเลยครับ เช่น final int LIMIT = 10 * 1000 * 1000;
@Rain
ชัดเจน: 2/3 สร้างสรรค์: 2/3 กระชับ 2/3 ความเร็ว 1/3
Comment: ช้าเพราะการ output ออกหน้าจอช้าครับ ถ้าตัด print
ออกไปจาก loop คงจะเร็วกว่านี้เยอะ
@IMPREM
ชัดเจน: 2/3 สร้างสรรค์: 3/3 กระชับ 2/3 ความเร็ว 3/3
Comment: ชอบ algorithm ครับ เร็วมาก!
@prin09
ชัดเจน: 2/3 สร้างสรรค์: 1/3 กระชับ 2/3 ความเร็ว 1/3
Comment: ตรงไปตรงมาดีครับ ตอนจะหา prime number ถ้าใช้ square root จะดีกว่า ÷ 2 ครับ และตอนตรวจ factor แทนที่จะ +1 เรา +2 ได้ เพราะบรรดาเลขคู่ไม่ต้องเช็คอยู่แล้ว แบบนี้จะเร็วขึ้นมาได้อีก แต่ C# โดยรวมเร็วแบบน่าตกใจอยู่แล้วครับ