Project Euler Problem 99 Largest exponential
Problem 99
Comparing two numbers written in index form like 211 and 37 is not difficult, as any calculator would confirm that 211 = 2048 < 37 = 2187.
However, confirming that 632382518061 > 519432525806 would be much more difficult, as both numbers contain over three million digits.
Using base_exp.txt (right click and 'Save Link/Target As...'), a 22K text file containing one thousand lines with a base/exponent pair on each line, determine which line number has the greatest numerical value.
NOTE: The first two lines in the file represent the numbers in the example given above.
C++:
#include <iostream> #include <cmath> #include <string> #include <fstream> using namespace std; int main() { long b, e, max, temp; int ans=0, no=0; string filename; cin >> filename; ifstream inf(filename, ios::in); char c; while(inf >> b >> c >> e) { no++; temp = (long) (e * log(b)); if(temp > max) { max = temp; ans = no; } } cout << ans << endl; inf.close(); return 0; }