From 178f67efb85afd82774d83513bcc6e78684a969c Mon Sep 17 00:00:00 2001 From: V1337Q Date: Sun, 12 Oct 2025 22:41:56 +0700 Subject: [PATCH 1/3] feat: menambahkan program cek bilangan pronic Signed-off-by: V1337Q --- math/pronic.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 math/pronic.cpp diff --git a/math/pronic.cpp b/math/pronic.cpp new file mode 100644 index 0000000..ddf6c4b --- /dev/null +++ b/math/pronic.cpp @@ -0,0 +1,52 @@ +#include +#include // untuk fungsi sqrt() + +/** + * @file pronic.cpp + * @brief Program sederhana untuk mengecek apakah sebuah input angka merupakan bilangan pronic atau bukan. + * Bilangan pronic adalah bilangan yang merupakan hasil perkalian dari suatu angka dengan angka selanjutnya. + * Rumus umum: + * n ( n + 1 ) + * Contoh sederhana: + * 3 4 = 12 -> 12 merupakan bilangan pronic. + * */ + + +/** + * @brief Mengecek apakah sebuah angka merupakan bilangan pronic. + * + * Fungsi ini menghitung akar kuadrat dari angka, melakukan truncation, + * lalu memeriksa apakah hasil perkalian angka tersebut dengan angka selanjutnya + * sama dengan angka input + * + * @param n Angka yang ingin dicek + * @return true Jika n merupakan bilangan pronic, false jika bukan + */ + +bool adalah_pronic(int n) { + int x = static_cast(sqrt(n)); + return (x * (x + 1) == n); //rumus pronic + /** + * Aproksimasi nilai x. + * Contoh: n = 12, aproksimasi dari sqrt(12) adalah 3.162277 + * Hasil kemudian di-cast ke int sehingga menjadi 3 (truncation) + */ +} + +int main() { + while (true) { //Supaya tidak harus menjalankan kode setiap mau mengetes angka baru. + int n; + std::cout << "Masukkan sebuah angka: "; + std::cin >> n; + + // Perform fungsi adalah_pronic() dengan mengambil input n yang sudah dimasukkan user sebagai parameter dan menampilkan output + if (adalah_pronic(n)) { + std::cout << n << " Merupakan bilangan pronic." << "\n"; + } else { + std::cout << n << " Bukan merupakan bilangan pronic." << "\n"; + } + } + + + return 0; +} From d218eac35cadd4ace45a57fbfe75e112d4fc73b6 Mon Sep 17 00:00:00 2001 From: VerumQuaerite Date: Mon, 13 Oct 2025 11:10:58 +0000 Subject: [PATCH 2/3] Update math/pronic.cpp Co-authored-by: arfy slowy --- math/pronic.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/math/pronic.cpp b/math/pronic.cpp index ddf6c4b..1779315 100644 --- a/math/pronic.cpp +++ b/math/pronic.cpp @@ -24,13 +24,14 @@ */ bool adalah_pronic(int n) { - int x = static_cast(sqrt(n)); - return (x * (x + 1) == n); //rumus pronic /** * Aproksimasi nilai x. * Contoh: n = 12, aproksimasi dari sqrt(12) adalah 3.162277 * Hasil kemudian di-cast ke int sehingga menjadi 3 (truncation) */ + int x = static_cast(sqrt(n)); + return (x * (x + 1) == n); //rumus pronic + } int main() { From a59838c2d00fc9cf438fe32b127c28bc51b9d6c5 Mon Sep 17 00:00:00 2001 From: VerumQuaerite Date: Mon, 13 Oct 2025 11:23:35 +0000 Subject: [PATCH 3/3] style: format kode dengan clang-format --- math/pronic.cpp | 73 ++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 38 deletions(-) diff --git a/math/pronic.cpp b/math/pronic.cpp index 1779315..605ed30 100644 --- a/math/pronic.cpp +++ b/math/pronic.cpp @@ -1,53 +1,50 @@ +#include // untuk fungsi sqrt() #include -#include // untuk fungsi sqrt() /** * @file pronic.cpp - * @brief Program sederhana untuk mengecek apakah sebuah input angka merupakan bilangan pronic atau bukan. - * Bilangan pronic adalah bilangan yang merupakan hasil perkalian dari suatu angka dengan angka selanjutnya. - * Rumus umum: - * n ( n + 1 ) - * Contoh sederhana: - * 3 4 = 12 -> 12 merupakan bilangan pronic. - * */ - + * @brief Program sederhana untuk mengecek apakah sebuah input angka merupakan + * bilangan pronic atau bukan. Bilangan pronic adalah bilangan yang merupakan + * hasil perkalian dari suatu angka dengan angka selanjutnya. Rumus umum: n ( n + * + 1 ) Contoh sederhana: 3 4 = 12 -> 12 merupakan bilangan pronic. + */ /** * @brief Mengecek apakah sebuah angka merupakan bilangan pronic. - * - * Fungsi ini menghitung akar kuadrat dari angka, melakukan truncation, - * lalu memeriksa apakah hasil perkalian angka tersebut dengan angka selanjutnya - * sama dengan angka input - * + * + * Fungsi ini menghitung akar kuadrat dari angka, melakukan truncation, + * lalu memeriksa apakah hasil perkalian angka tersebut dengan angka + * selanjutnya sama dengan angka input + * * @param n Angka yang ingin dicek * @return true Jika n merupakan bilangan pronic, false jika bukan */ - bool adalah_pronic(int n) { - /** - * Aproksimasi nilai x. - * Contoh: n = 12, aproksimasi dari sqrt(12) adalah 3.162277 - * Hasil kemudian di-cast ke int sehingga menjadi 3 (truncation) - */ - int x = static_cast(sqrt(n)); - return (x * (x + 1) == n); //rumus pronic - + int x = static_cast(sqrt(n)); + return (x * (x + 1) == n); // rumus pronic + /** + * Aproksimasi nilai x. + * Contoh: n = 12, aproksimasi dari sqrt(12) adalah 3.162277 + * Hasil kemudian di-cast ke int sehingga menjadi 3 (truncation) + */ } int main() { - while (true) { //Supaya tidak harus menjalankan kode setiap mau mengetes angka baru. - int n; - std::cout << "Masukkan sebuah angka: "; - std::cin >> n; - - // Perform fungsi adalah_pronic() dengan mengambil input n yang sudah dimasukkan user sebagai parameter dan menampilkan output - if (adalah_pronic(n)) { - std::cout << n << " Merupakan bilangan pronic." << "\n"; - } else { - std::cout << n << " Bukan merupakan bilangan pronic." << "\n"; - } - } - - - return 0; + while (true) { // Supaya tidak harus menjalankan kode setiap mau mengetes angka baru. + int n; + std::cout << "Masukkan sebuah angka: "; + std::cin >> n; + + // Perform fungsi adalah_pronic() dengan mengambil input n yang sudah + // dimasukkan user sebagai parameter dan menampilkan output + if (adalah_pronic(n)) { + std::cout << n << " Merupakan bilangan pronic." + << "\n"; + } else { + std::cout << n << " Bukan merupakan bilangan pronic." + << "\n"; + } + } + + return 0; }