1043 : Power
Problem type : Batch
Time limit : 1.0 second(s)
Memory limit : 64 megabyte(s)
ตัวเลขจำนวนเต็มบวกที่จัดเป็นกำลัง k สมบูรณ์ (k เป็นจำนวนเต็มและ k > 1) เป็นตัวเลขที่สามารถเขียนให้อยู่ในรูป xk ได้โดยที่ x เป็นจำนวนเต็มใด ๆ เช่น 8 จัดเป็นกำลังสามสมบูรณ์ เพราะ 23 = 8 ส่วน 2401 เป็นกำลังสี่สมบูรณ์เนื่องจาก 74 = 2401 นอกจากนั้นยังถือเป็นกำลังสองสมบูรณ์ด้วย เนื่องจาก 492 = 2401 เช่นกัน

โจทย์
จงเขียนโปรแกรมเพื่อรับข้อมูลชุดตัวเลขเข้ามา และตรวจสอบว่าตัวเลขแต่ละตัวจัดเป็นกำลัง k สมบูรณ์หรือไม่ และ k คือค่าใด หากค่า k เป็นไปได้มากกว่าหนึ่งค่าให้รายงานค่าที่มากที่สุด

ข้อมูลนำเข้า
บรรทัดแรกของข้อมูลนำเข้าเป็นจำนวนเต็ม n (1 <= n <= 1000) ซึ่งเป็นจำนวนตัวเลขที่ต้องการตรวจสอบ
ใน n บรรทัดถัดไปในแต่ละบรรทัดเป็นตัวเลข yi ที่ต้องการตรวจสอบ โดย (2 <= yi <= 100000000)

ข้อมูลส่งออก
ประกอบด้วย n บรรทัด แต่ละบรรทัด i ระบุว่าตัวเลขอินพุทในบรรทัดที่ i + 1 เป็นกำลัง k สมบูรณ์สำหรับจำนวนเต็มบวก k > 1 บางตัวหรือไม่ ถ้าใช่ให้แสดงค่า k ที่มากที่สุด ถ้าไม่ใช่ให้แสดงคำว่า "NO"

ที่มา: การแข่งขันคณิตศาสตร์ วิทยาศาสตร์ โอลิมปิกแห่งประเทศไทย สาขาวิชาคอมพิวเตอร์ ประจำปี 2550


ตัวอย่างข้อมูลนำเข้า ตัวอย่างข้อมูลส่งออก
5
1000000
994009
20
59050
524288
6
2
NO
NO
19

ความช่วยเหลือ: ไม่มีคำใบ้สำหรับปัญหานี้

กำลังออนไลน์: 22 ผู้เยี่ยมชมและ 0 สมาชิก (2 บอท)