This problem is not written by me. I found it somewhere as an entry test. Not sure either if my answer is correct and if its efficiency is within the requirement. If you are to solve the same problem, I suggest you not to be so low and copy other people's work. If you are the creator of this problem, see if my solution is acceptable =)
CHALLENGE DESCRIPTION
Angka 3025 adalah angka yang sangat menarik. Mengapa? Karena kalau kita pisah angka 3025 menjadi 30 dan 25, maka kuadrat dari penjumlahan kedua angka tersebut adalah 3025. Dengan kata lain, (30+25)^2 = 3025
Agar lebih simple, mari kita sebut angka-angka yang memiliki properti tersebut angka "Ajaib"
Saya ingin mencari lagi angka-angka Ajaib lainnya. Tugas kamu, buatlah sebuah program yang mem-print angka
Ajaib yang memiliki jumlah digit N.
INPUT SAMPLE
/**************************** input.txt /
/** Start /
2
/* End *******************************/
OUTPUT SAMPLE
/*************************** output.txt /
/** Start /
00, 01, dan 81
/* End *******************************/
RULES AND ASSUMPTIONS
- Angka Ajaib harus memiliki jumlah digit yang genap, contoh 2, 4, 6, 8, dan seterusnya.
- Setiap jawaban dipisahkan oleh sebuah koma dan spasi.
- Selalu ada kata "dan" sebelum jawaban yang terakhir.
- Tidak perlu kata "dan" apabila jawabannya hanya satu.
- Angka 0 di depan harus diperhitungkan, contoh 01 dan 00 adalah jawaban yang valid.
- Gunakan algoritma yang paling efisien yang kamu ketahui.
Kompleksitas O(n^2) tidak termasuk jawaban yang memuaskan. - Program yang dibuat harus membaca sebuah file yang berisikan sebuah nomor yang akan dipakai sebagai N.
- Program harus print output ke file lain.
- Apabila file input terdiri dari lebih dari satu baris, maka tolak dan print error.
- Apabila file mengandung huruf maka tolak dan print error.