Dalam aritmatika, bilangan n-smooth , di mana n adalah bilangan prima yang diberikan, secara matematis didefinisikan sebagai bilangan bulat positif yang tidak memiliki faktor prima lebih besar dari n. Sebagai contoh, 42 adalah 7-smooth karena semua faktor prima kurang dari atau sama dengan 7, tetapi 44 tidak 7-smooth karena ia juga memiliki 11 sebagai faktor prima.
Tetapkan angka yang cukup halus sebagai angka tanpa faktor prima lebih besar dari akar kuadratnya sendiri. Dengan demikian, daftar angka yang cukup halus dapat dirumuskan sebagai berikut:
- (Diedit!) 1 adalah angka yang cukup mulus, karena tidak ada faktor prima. (Perhatikan bahwa dalam versi asli pertanyaan ini, 1 secara keliru dikecualikan dari daftar, jadi jika Anda mengecualikannya dari hasil Anda, Anda tidak akan ditandai salah.)
- Antara 4 (= 2 2 ) dan 8, angka yang cukup halus adalah 2-halus, artinya mereka memiliki 2 sebagai satu-satunya faktor utama mereka.
- Antara 9 (= 3 2 ) dan 24, angka yang cukup halus adalah 3-halus, dan dapat memiliki 2s dan 3s dalam faktorisasi prima mereka.
- Antara 25 (= 5 2 ) dan 48, angka yang cukup halus adalah 5-halus, dan dapat memiliki 2s, 3s, dan 5s di faktorisasi utamanya.
- Dan seterusnya, meningkatkan kriteria setiap kali kuadrat dari bilangan prima berikutnya tercapai.
Daftar angka yang cukup halus diperbaiki, dan dimulai sebagai berikut: 1, 4, 8, 9, 12, 16, 18, 24, 25, ...
Tantangan Anda adalah menulis kode yang akan menampilkan semua angka yang cukup lancar hingga dan termasuk 10.000 (= 100 2 ). Harus ada setidaknya satu pemisah (tidak peduli apa jenisnya - ruang, koma, baris baru, apa saja) antara setiap angka dalam daftar dan yang berikutnya, tetapi sama sekali tidak relevan karakter apa yang digunakan.
Seperti biasa, jumlah byte terendah menang - jelas, hanya mengeluarkan daftar tidak akan terlalu bermanfaat bagi Anda di sini. Semoga berhasil!
1
)Jawaban:
Sebenarnya, 11 byte
Cobalah online!
Tidak termasuk 1.
Penjelasan:
sumber
Jelly , 12 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Brachylog ,
2119 byte1 byte berkat Fatalize, untuk inspirasi 1 byte lainnya.
Cobalah online!
Membutuhkan waktu sekitar 6 detik di sini.
Solusi 21 byte sebelumnya
Cobalah online!
Membutuhkan waktu sekitar 6 detik di sini.
sumber
100^:4reP$pot^<=P@w\
lebih pendek satu byte, meskipun kurang elegan.Haskell, 53 byte
Saya tidak punya waktu untuk bermain golf sekarang, tetapi saya ingin menggambarkan metode untuk menguji apakah
n
cukup lancar: Kalikan angka dari1
kesqrt(n)
(yaitu menghitung faktorial), naikkan produk ke daya tinggi, dan periksa apakah hasilnya adalah kelipatan darin
.Ubah ke
r=[2..10^4]
jika1
seharusnya tidak menjadi output.sumber
8
membutuhkannya).Pyth ,
1615 byteTerima kasih 1 byte untuk Jakube.
Cobalah online!
sumber
*dd
dengan fungsi itu?05AB1E,
161413 bytePenjelasan
Cobalah online
sumber
4°
adalah kependekan dari 10000.Matlab,
5857565248 byteUntuk setiap angka itu memeriksa apakah semua faktor kuadrat tidak lebih besar dari angka itu sendiri. Jika ya, tampilkan nomor itu.
Terima kasih kepada @Luis Mendo untuk bermain golf dengan pendekatan ini
Pendekatan lain (50 byte):
Untuk setiap angka menghitung apakah faktor prima maksimum kuadratnya kurang dari angka itu sendiri. Kemudian gunakan untuk pengindeksan.
sumber
for k=4:1e4,if factor(k).^2<=k,disp(k);end;end
SQF ,
252227220Format skrip standar:
Sertakan pra-prosesor dalam rantai kompilasi saat memanggil mis .:
execVM "FILENAME.sqf"
call compile preprocessFile "FILENAME.sqf"
Ini menulis ke log Obrolan Sistem, yang merupakan hal terdekat yang harus dilakukan SQF
sumber
C, 113 byte
Ide itu!
sumber
Pyke,
131211 byteCoba di sini!
(Tautan hanya naik hingga 10 ^ 3 karena 10 ^ 4 kali lipat)
sumber
J, 20 byte
Hasil:
Cobalah online di sini.
sumber
Python 2, 90 byte
Ide itu!
sumber
R, 97 byte
ungolfed
sumber
Pyth, 12 byte
Tidak termasuk 1.
sumber