aboutsummaryrefslogtreecommitdiff
path: root/challenge-009/paulo-custodio/cpp/ch-1.cpp
diff options
context:
space:
mode:
authordrbaggy <js5@sanger.ac.uk>2021-06-27 20:22:30 +0100
committerdrbaggy <js5@sanger.ac.uk>2021-06-27 20:22:30 +0100
commit287d70fb03bbb2ba51e636cf051775400e94bcb4 (patch)
tree85a39b2a331bbb5b49d17f63ae76796f3999e7ce /challenge-009/paulo-custodio/cpp/ch-1.cpp
parent9beb73e6913f7e462c4aca8719048a7be98e4ad2 (diff)
parent1b3142a75a8db8a886596770514e2d9fa1cd9187 (diff)
downloadperlweeklychallenge-club-287d70fb03bbb2ba51e636cf051775400e94bcb4.tar.gz
perlweeklychallenge-club-287d70fb03bbb2ba51e636cf051775400e94bcb4.tar.bz2
perlweeklychallenge-club-287d70fb03bbb2ba51e636cf051775400e94bcb4.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-009/paulo-custodio/cpp/ch-1.cpp')
-rw-r--r--challenge-009/paulo-custodio/cpp/ch-1.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/challenge-009/paulo-custodio/cpp/ch-1.cpp b/challenge-009/paulo-custodio/cpp/ch-1.cpp
new file mode 100644
index 0000000000..a647b3cfd7
--- /dev/null
+++ b/challenge-009/paulo-custodio/cpp/ch-1.cpp
@@ -0,0 +1,37 @@
+/*
+Challenge 009
+
+Challenge #1
+Write a script that finds the first square number that has at least 5 distinct
+digits.This was proposed by Laurent Rosenfeld.
+*/
+
+#include <iostream>
+using namespace std;
+
+int num_diff_digits(int n) {
+ bool digits[10] = {0};
+ int count = 0;
+ while (n > 0) {
+ int digit = n % 10;
+ n /= 10;
+ if (!digits[digit]) {
+ digits[digit] = true;
+ count++;
+ }
+ }
+ return count;
+}
+
+int main(int argc, char* argv[]) {
+ int num = 0;
+ if (argc == 2)
+ num = atoi(argv[1]);
+ if (num == 0)
+ num = 5;
+
+ int n = 1;
+ while (num_diff_digits(n * n) < num)
+ n++;
+ cout << n * n << endl;
+}