diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-04-05 21:38:59 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-04-05 21:38:59 +0100 |
| commit | b2ad01584238b6bf7603faeb2748d93d431345a6 (patch) | |
| tree | 7262cba82ffdeaf2db763bd0753b437ee43f3dc4 /challenge-159/ulrich-rieke/cpp/ch-2.cpp | |
| parent | 6aa5c270464f36c0fb846c3dfd8b95db8dc2fa66 (diff) | |
| download | perlweeklychallenge-club-b2ad01584238b6bf7603faeb2748d93d431345a6.tar.gz perlweeklychallenge-club-b2ad01584238b6bf7603faeb2748d93d431345a6.tar.bz2 perlweeklychallenge-club-b2ad01584238b6bf7603faeb2748d93d431345a6.zip | |
- Added solutions by Ulrich Rieke.
Diffstat (limited to 'challenge-159/ulrich-rieke/cpp/ch-2.cpp')
| -rw-r--r-- | challenge-159/ulrich-rieke/cpp/ch-2.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/challenge-159/ulrich-rieke/cpp/ch-2.cpp b/challenge-159/ulrich-rieke/cpp/ch-2.cpp new file mode 100644 index 0000000000..85ae8382fe --- /dev/null +++ b/challenge-159/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,41 @@ +#include <iostream> +#include <vector> +#include <set> +#include <cstdlib> + +//the smallest current divisor of a number is a prime number +std::vector<int> primeDecompose( int n ) { + std::vector<int> primes ; + int current = 2 ; + while ( n != 1 ) { + if ( n % current == 0 ) { + primes.push_back( current ) ; + n /= current ; + } + else + current++ ; + } + return primes ; +} + +int main( int argc, char * argv[] ) { + int n = std::atoi( argv[1] ) ; + while ( n <= 0 ) { + std::cout << "Please enter a number greater than 0!\n" ; + std::cin >> n ; + } + std::vector<int> primes { primeDecompose( n ) } ; + std::set<int> uniqueNums( primes.begin( ) , primes.end( ) ) ; + int pl = primes.size( ) ; + int ul = uniqueNums.size( ) ; + if ( pl == ul ) { + if ( pl % 2 == 0 ) + std::cout << 1 ; + else + std::cout << -1 ; + } + else + std::cout << 0 ; + std::cout << std::endl ; + return 0 ; +} |
