Skip to content

Commit d481eb7

Browse files
V1337Qbellshadebot
andauthored
feat: menambahkan program cek bilangan pronic
# Deskripsi (Description) Menambahkan program sederhana untuk mengecek apakah suatu input angka merupakan bilangan pronic. # Checklist: ##### Umum: - [ x] Saya menambah algoritma terbaru. ##### Contributor Requirements (Syarat Kontributor) dan Lain-Lain: - [x ] Saya sudah membaca (I have read) [CONTRIBUTING](https://github.com/bellshade/CPP/blob/main/CONTRIBUTING.md) dan sudah menyetujui semua syarat. - [ x] Saya telah menambahkan komentar kode yang memberikan penjelasan maksud dari kode yang saya buat. - [ x] Saya menggunakan bahasa Indonesia untuk memberikan penjelasan dari kode yang saya buat. # Environment Saya menggunakan (I'm using): - ``OS`` = `Linux` - ``g++`` = `15.2.1` # Link Issues Issues : # This Commit License https://github.com/bellshade/CPP/blob/main/license Co-authored-by: bellshadebot <[email protected]>
1 parent 85864d4 commit d481eb7

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

math/pronic.cpp

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#include <cmath> // untuk fungsi sqrt()
2+
#include <iostream>
3+
4+
/**
5+
* @file pronic.cpp
6+
* @brief Program sederhana untuk mengecek apakah sebuah input angka merupakan
7+
* bilangan pronic atau bukan. Bilangan pronic adalah bilangan yang merupakan
8+
* hasil perkalian dari suatu angka dengan angka selanjutnya. Rumus umum: n ( n
9+
* + 1 ) Contoh sederhana: 3 4 = 12 -> 12 merupakan bilangan pronic.
10+
*/
11+
12+
/**
13+
* @brief Mengecek apakah sebuah angka merupakan bilangan pronic.
14+
*
15+
* Fungsi ini menghitung akar kuadrat dari angka, melakukan truncation,
16+
* lalu memeriksa apakah hasil perkalian angka tersebut dengan angka
17+
* selanjutnya sama dengan angka input
18+
*
19+
* @param n Angka yang ingin dicek
20+
* @return true Jika n merupakan bilangan pronic, false jika bukan
21+
*/
22+
bool adalah_pronic(int n) {
23+
int x = static_cast<int>(sqrt(n));
24+
return (x * (x + 1) == n); // rumus pronic
25+
/**
26+
* Aproksimasi nilai x.
27+
* Contoh: n = 12, aproksimasi dari sqrt(12) adalah 3.162277
28+
* Hasil kemudian di-cast ke int sehingga menjadi 3 (truncation)
29+
*/
30+
}
31+
32+
int main() {
33+
while (true) { // Supaya tidak harus menjalankan kode setiap mau mengetes angka baru.
34+
int n;
35+
std::cout << "Masukkan sebuah angka: ";
36+
std::cin >> n;
37+
38+
// Perform fungsi adalah_pronic() dengan mengambil input n yang sudah
39+
// dimasukkan user sebagai parameter dan menampilkan output
40+
if (adalah_pronic(n)) {
41+
std::cout << n << " Merupakan bilangan pronic."
42+
<< "\n";
43+
} else {
44+
std::cout << n << " Bukan merupakan bilangan pronic."
45+
<< "\n";
46+
}
47+
}
48+
49+
return 0;
50+
}

0 commit comments

Comments
 (0)