https://www.hackerrank.com/challenges/30-interfaces/problem
Day 19 Interfaces Solution in Cpp
#include <iostream>
#include <vector>
#include <cmath>
#include <cstdio>
#include <algorithm>
#include <string>
using namespace std;
class AdvancedArithmetic{
public:
virtual int divisorSum(int n)=0;
};
class Calculator : public AdvancedArithmetic {
public:
int divisorSum(int n) {
int sum = 0;
if ( 1 == n ) {
return 1;
}
for (int lo = 1, hi = n ; lo < hi ; ++lo) {
if (n % lo) { continue; }
sum += lo;
hi = (n / lo);
if (hi <= lo) { break; }
sum += hi;
}
return sum;
}
};
int main(){
int n;
cin >> n;
AdvancedArithmetic *myCalculator = new Calculator();
int sum = myCalculator->divisorSum(n);
cout << "I implemented: AdvancedArithmetic\n" << sum;
return 0;
}
0 Comments