We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.

public static int getTotalX(List<int> a, List<int> b)
{
int total = 0;
int number = a.Max();
Enumerable.Range(number, b.Min())
.ToList()
.ForEach(n =>
{
if (a.All(e => number % e == 0 || e % number == 0)
&& b.All(e => number % e == 0 || e %number == 0))
total++;
number++;
});
return total;
}

I noticed that Your answer goes through way too many iterations and doesn't take large enough steps, there can be no correct answer between a.Max() and 2a.Max(), therefore skipping those is a good idea.

Looping through by generating an amount of integers also isnt really necessary, just start from lowest possible correct answer ( a.Max() ) and make sure youre not over the largest possible ( b.Min() ) correct answer.

Works like a charm :).

Here is the resulting code with comments.

public static int getTotalX(List<int> a, List<int> b)
{
/*Starting from 0 found, storing largest value in A and smallest value in b. Setting starting point to largest value in A.*/
int foundCount = 0, maxA = a.Max(), minB = b.Min(), current = maxA;
while (current <= minB)
{
/*If the current value is divisible by all members of both arrays, then it's the one we want.*/
if (a.All(e => current % e == 0 || e % current == 0) && b.All(e => current % e == 0 || e % current == 0))
foundCount++;
/*Iterate the value by largest member of divisors, no reason to take smaller steps.*/
current+= maxA;
};
return foundCount;
}

" C# " for everyone CTRL+F-ing.

//Stored a.Max() and b.Min() as dsgarg71 suggested below :).

## Between Two Sets

You are viewing a single comment's thread. Return to all comments →

We need to find numbers b/w two arrays, we can take max from a and min from b, then we can do calculation to find numbers.

This is what i'm doing in m beloved JS.

function getTotalX(a, b) { let total = 0; let maxA = Math.max(...a); let minB = Math.min(...b); let number = maxA;

}

That makes it very easy for me.

@gkjha009 -- This is

reallygood.i think u shouldn't compute

numberIsMultipleOfAllifallElementsAreMultipleisfalseThis is a great solution. I implemented it in Swift

Nice logic!

The same logic in C#:

Hello!

I noticed that Your answer goes through way too many iterations and doesn't take large enough steps, there can be no correct answer between a.Max() and 2a.Max(), therefore skipping those is a good idea.

Looping through by generating an amount of integers also isnt really necessary, just start from lowest possible correct answer ( a.Max() ) and make sure youre not over the largest possible ( b.Min() ) correct answer.

Works like a charm :).

Here is the resulting code with comments.

" C# " for everyone CTRL+F-ing.

//Stored a.Max() and b.Min() as dsgarg71 suggested below :).

Very nice optimization! I really was not realized it. Thanks. :)

Thanks :). dsarg71 found another neat optimization. I've added that as well.

Wow It did the magic. Thanks

Thats n^3, Why not to store a.Max/b.Min and other such stuff once got so that their compute does not repeat.

You're right, the computation does indeed get repeated, I've changed the code accordingly. Good eye!