PHP7 + JavaScript, 62 61 58 byte
Ini sebenarnya lebih menantang dari yang saya harapkan! Saya cukup terkejut dengan berapa lama kode saya.
eval(['alert((_=prompt())*_)','echo$argv[1]**.5'][+![]]);
Bagaimana cara kerjanya?
Ini berfungsi dengan memilih kode yang akan dijalankan, dari array.
Deteksi PHP dan JavaScript dibuat dengan +![].
Dalam PHP, [](array kosong) adalah nilai falsy, sedangkan dalam JavaScript adalah nilai kebenaran (objek (kecuali null) selalu benar, bahkan new Boolean(false)benar!).
Tapi, saya harus mendapatkannya ke nilai numerik, jadi, saya hanya menggunakan a not( !) dan mengubahnya menjadi integer (dengan +).
Sekarang, PHP menghasilkan nilainya 1, sedangkan JavaScript menghasilkan 0.
Menempatkan kode di dalam array, pada indeks itu, akan memungkinkan kita untuk memilih kode yang tepat untuk bahasa yang diinginkan.
Ini dapat digunakan sebagai [JS,PHP][+![]], untuk mendapatkan kode bahasa yang tepat.
Pada polyglots sebelumnya, saya telah menggunakan '\0'=="\0", yang ada truedi JavaScript (karena di \0-parsing sebagai NULL-byte) dan falsedi PHP (yang '\0'tidak akan di-parsing sebagai NULL-byte, membandingkan string literal \0dengan NULL-byte).
Saya senang saya berhasil mengurangi cek ini +!'0'.
Saya bahkan lebih senang tentang @rckd , yang mengurangi ke versi saat ini!
Dari sana, itu hanya evalkode yang diperlukan.
PHP
PHP akan mengeksekusi echo$argv[1]**.5(setara dengan echo sqrt($argv[1]);, akar kuadrat angka), menerima nilai dari argumen ke-2 dan menampilkannya dalam output standar.
JavaScript
JavaScript dijalankan alert((_=prompt())*_), yang menampilkan angka kuadrat dalam alert.
Terima kasih kepada @rckd karena telah menghemat 1 byte, dan @ user59178 telah menghemat 3 byte!