Obat ngantuk 1
Jika dituliskan ke dalam bentuk perkalian faktor (a . b), 24 dapat dituliskan sebagai :

Perhatikan bahwa dalam bentuk perkalian di atas (a . b), terdapat beberapa pola :



Dan jika dihitung, maka pada data di atas terdapat 4 buah baris dan 2 buah kolom. Sehingga siapapun dapat menghitung dengan cepat banyaknya elemen dalam “tabel”. Tinggal kalikan jumlah baris dan jumlah kolom maka akan diperoleh banyaknya elemen, yaitu 8.
Dengan cara yang sama, 84 juga dapat dituliskan ke dalam bentuk perkalian faktor (a . b) :

Sehingga banyaknya elemen dalam “tabel” juga dapat diperoleh dengan mengalikan jumlah baris dan jumlah kolom. Untuk 84, terdapat 6 baris dan “so pasti” 2 kolom. Sehingga banyaknya elemen yang ada di dalam “tabel” adalah 12.
Karena “2 kolom” adalah suatu keterjadian (hal yang mutlak), maka – jika direpresentasikan ke dalam bentuk tabel perkalian faktor semua bilangan pasti memiliki jumlah elemen dalam bentuk 2 . baris, yaitu suatu bilangan genap. Sayangnya, jumlah elemen di dalam tabel tidak merepresentasikan jumlah faktor yang sebenarnya. Karena, tabel “perkalian faktor” ini tidak menjamin keunikan/uniqueness dari elemen-elemen yang ada.
“Mengapa setiap faktor harus unik?”
Untuk memahaminya, silahkan bayangkan jika anda diperbolehkan untuk menuliskan faktor secara tidak unik. Untuk angka 24, anda dapat menuliskan faktornya sebagai 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, …. 24. Totalnya ada tidak terhingga banyaknya faktor.
Setelah memahami sifat “unik” dari setiap faktor dengan faktor lainnya, sebuah pertanyaan kritis akan muncul.
“Apakah mungkin elemen-elemen pada tabel perkalian faktor tidak unik?”
Mungkin saja, yaitu ketika
. Sebagai contoh, angka 25, jika direpresentasikan ke dalam tabel perkalian faktor adalah sebagai berikut :

Jumlah elemen pada tabel perkalian faktor adalah 4 (genap dan akan selalu genap) sementara jumlah faktor yang sebenarnya adalah 3, yaitu 1, 5, dan 25.
Pertanyaan berikutnya yang mungkin muncul adalah “Berapa kali kasus a = b muncul?”
Konstrain
secara implisit mengatakan bahwa
Sekarang, misalkan kasus
pertama kali terjadi di baris ke-lima, yaitu pada
.
Apakah mungkin di baris-baris berikutnya kasus
terulang kembali?
Setelah baris ke-lima kita tentu menemui baris ke-enam. Di baris ke-enam akan muncul
yang lebih besar dari
, yakni
. Dan akan muncul pula
yang lebih kecil dari
, yakni
.
Karena
, maka
. Suatu hal yang tidak boleh kita lakukan karena di setiap baris kita sudah menyepakati bahwa
. Dengan demikian, jika kasus
terjadi di baris ke-lima dapat dipastikan tidak akan ada baris lagi di bawah baris ke-lima. Atau secara umum dapat kita katakan kasus
hanya bisa terjadi maksimal satu kali, dan jika hal itu terjadi di baris ke-n maka pasti n adalah baris terbawah.
Dengan demikian, dapat disimpulkan bahwa kasus ketidak-unikan elemen yang menyebabkan keganjilan jumlah faktor hanya akan muncul di saat baris terbawah dari tabel perkalian faktor-nya dalam bentuk
.
Sekarang, apa makna dari
? Makna dari
adalah bilangan yang dimaksud (
) dapat dituliskan ke dalam bentuk
. Yaitu sebuah bilangan kuadrat. Dengan demikian, kasus keganjilan jumlah faktor hanya akan muncul pada saat
adalah sebuah bilangan kuadrat.

Obat Ngantuk 2
Faktor-faktor untuk 1 dapat dituliskan sebagai :

Faktor-faktor untuk 2, yakni
, dapat dituliskan sebagai :

Faktor-faktor untuk 4, yakni
, dapat dituliskan sebagai :

Faktor-faktor untuk 8, yakni
, dapat dituliskan sebagai :

Faktor-faktor untuk 24, yakni
, dapat dituliskan sebagai :

Faktor-faktor untuk 72, yakni
, dapat dituliskan sebagai :

Catatan : Penulisan faktor di atas dilakukan terurut berdasarkan “kedatangan” faktor prima dan pangkatnya.
Apakah ada pola-nya?
Ada, yaitu :
- Tentukan 1 sebagai awalan (origin of species)
- Ketika
datang, kalikan dengan semua faktor yang ada.
- Ketika
datang, kalikan dengan semua, kecuali dengan faktor yang mengandung 
- Ketika
datang, kalikan dengan semua, kecuali dengan faktor yang mengandung
ataupun 
- Ketika
datang, kalikan dengan semua faktor yang ada.
- Ketika
datang, kalikan dengan semua, kecuali dengan faktor yang mengandung 
- dst..
Tanpa mengurangi kebenarannya, kita modifikasi sedikit menjadi :
- Tentukan 1 sebagai awalan (origin of species)
- Ketika
datang, kalikan dengan semua faktor yang ada.
- Ketika
datang, kalikan dengan semua, kecuali dengan faktor yang mengandung 2
- Ketika
datang, kalikan dengan semua, kecuali dengan faktor yang mengandung 2
- Ketika
datang, kalikan dengan semua faktor yang ada.
- Ketika
datang, kalikan dengan semua, kecuali dengan bilangan yang mengandung 3
- dst..
Sekarang, kita tambahkan sedikit logika.
Ketika
datang (step 2), belum ada bilangan yang mengandung 2. Begitu juga ketika
datang (step 4), belum ada bilangan yang mengandung 3. Sehingga, tanpa mengurangi kebenarannya, pola yang terbentuk dapat kita tulis ulang lagi menjadi :
- Tentukan 1 sebagai awalan (origin of species)
- Ketika
datang, kalikan dengan semua faktor yang ada, kecuali dengan faktor yang mengandung 2
- Ketika
datang, kalikan dengan semua, kecuali dengan faktor yang mengandung 2
- Ketika
datang, kalikan dengan semua, kecuali dengan faktor yang mengandung 2
- Ketika
datang, kalikan dengan semua, kecuali dengan faktor yang mengandung 3
- Ketika
datang, kalikan dengan semua, kecuali dengan faktor yang mengandung 3
- dst..
Nah akhirnya terbentuk satu pola yang sangat mudah dibaca. Ketika
(ataupun keluarganya) datang, semuanya menolak untuk dikalikan dengan bilangan-bilangan yang mengandung 2. Begitu juga ketika
(ataupun keluarganya) datang, semuanya menolak untuk dikalikan dengan bilangan-bilangan yang mengandung 3.
Sehingga, secara umum, ketika
(ataupun keluarganya) datang, semuanya menolak untuk dikalikan dengan bilangan-bilangan yang mengandung p.
Sekarang kita tulis lagi pola kita :
- Tentukan 1 sebagai awalan.
- Ketika 2 (atau keluarganya) datang, kalikan dengan semua faktor yang ada, kecuali dengan faktor yang mengandung 2.
- Ketika 3 (atau keluarganya) datang, kalikan dengan semua faktor yang ada, kecuali dengan faktor yang mengandung 3.
- dst..
Misalkan “anggota keluarga” 2 ada
buah, maka :
- Ketika 1 ditentukan sebagai awalan, jumlah faktor = 1
- Ketika
datang, dia hanya mau dikalikan dengan satu buah faktor, yaitu 1
- Ketika
datang, dia hanya mau dikalikan dengan satu buah faktor, yaitu 1
- Ketika
datang, dia hanya mau dikalikan dengan satu buah faktor, yaitu 1
- …
- Ketika
datang, dia hanya mau dikalikan dengan satu buah faktor, yaitu 1
Mengapa semua “anggota keluarga” 2 hanya mau dikalikan dengan satu buah faktor, yaitu 1? Karena mereka takut terjadi “incest”, yaitu perkawinan dengan bilangan “sedarah”, yaitu bilangan yang mengandung angka 2. Hanya ada 1 faktor yang pasti tidak “sedarah” dengan mereka, yaitu 1. Karena perkawinan ini terjadi sebanyak
kali, maka total faktor sekarang ada
.
Misalkan “anggota keluarga” 3 ada
buah. Serupa dengan 2, semua bilangan “berdarah” 3 mengharamkan “incest” dan dengan demikian :
- Ketika
datang, dia hanya mau dikawinkan dengan
buah bilangan,
- Ketika
datang, dia hanya mau dikawinkan dengan
buah bilangan,
- Ketika
datang, dia hanya mau dikawinkan dengan
buah bilangan,
- …
- Ketika
datang, dia hanya mau dikawinkan dengan
buah bilangan
Karena terjadi
kali perkawinan, maka total bilangan baru adalah
. Dan jika ditambahkan dengan yang sebelumnya, yaitu
. Maka total bilangan (faktor) sekarang adalah 
Jika dituliskan ulang polanya menjadi :
Kesimpulan :
- Banyaknya faktor dapat dihitung dengan tepat tanpa harus mengetahui faktor-faktornya.
- Banyaknya faktor tidak tergantung kepada faktor prima-nya. Alih-alih, tergantung kepada “pangkat” dari faktor prima-nya.
Technical Jibba-Jabba :
Pseudo-Code :
function FakPos([exp], lower, upper)
result = 1
for each i in lower to upper exclusive
result = result * (1 + exp[i])
return result
Implementasi Java : Ideone
Implementasi C++ : Sabar subur
Validitas algoritma ini cocok dengan fungsi
seperti dijelaskan pada divisor function.
Secara matematis, FakPos(n) atau d(n) dirumuskan sebagai :
dimana
adalah pangkat/eksponen dari faktor prima ke-i dari n.
