Euler maths problems of largest product in series

Link to problem :

LINK

My Answer : (Which is wrong) :grimacing:

2091059712

What is the correct answer ??
@ssjgz @ssrivastava990

u can do easily in n*k complexity .

complexity is not the problem. i just wanted the answer.

My code with input string but i dont know why it generates wrong answer ?

#include<bits/stdc++.h>
using namespace std;
bool isprime(long long num)
{
    for( long long i = 2 ; i*i <= num ; i++ )
        if(num%i == 0) return false;
    return true;
}
int main()
{

/*#ifndef ONLINE_JUDGE
    freopen("output.txt", "r", stdin);
    freopen("input.txt","w",stdout);
#endif
*/
    string s;
    cin >> s;
    int product,maxx=0;
    for( int i = 0 ; i < s.length() - 13 ; i++ )
    {
        product = 1;
        for( int j = i ; j < i+13 ; j++ )
        {
            product = product*(s[j]-48);
        }
        maxx = max(product,maxx);
    }
    cout << maxx;
}
/*
7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450
*/

Use long long instead of int

2 Likes

Consider the testcase consisting of 1000 9s.

2 Likes

correct answer - 23514624000

correct code -

#include<bits/stdc++.h>
using namespace std;
bool isprime(long long num)
{
    for( long long i = 2 ; i*i <= num ; i++ )
        if(num%i == 0) return false;
    return true;
}
int main()
{

/*#ifndef ONLINE_JUDGE
    freopen("output.txt", "r", stdin);
    freopen("input.txt","w",stdout);
#endif
*/
    string s;
    cin >> s;
    long long int product,maxx=0;
    for( int i = 0 ; i <= s.length() - 13 ; i++ )
    {
        product = 1;
        for( int j = i ; j < i+13 ; j++ )
        {
            product = product*(s[j]-48);
        }
        maxx = max(product,maxx);
    }
    cout << maxx;
}
/*
7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450
*/

and use <= in s.length() - 13 not < s.length() -13 @hblord787

1 Like

for programming version of project euler - “https://www.hackerrank.com/contests/projecteuler/challenges

Thanks to both. that was a lame mistake :sweat_smile:

2 Likes