15,916,462 members
See more:
I want to find the number of distinct prime number of a given number, I am passing a array to the function and then multiplying all the elements of the array to generate the number, I am getting BUS ERROR for some test cases

What I have tried:

```int Solution::solve(vector<int> &A) {
long long int mul = 1;
for(int i=0;(i<A.size()-1);i++)
{
mul = mul*A[i];
}
int new1 = mul;
int arr[new1 + 1];
memset(arr, 0, sizeof(arr));
for (int i = 2; i * i <= new1; i++)
{
if (!arr[i])
{
for (int j = 2 * i; j <= new1; j += i)
{
arr[j]++;
}
}

arr[i] = 1;
}
return *max_element(arr, arr+new1);
}```
Posted
Updated 5-Aug-18 4:27am
Eric Lynch 5-Aug-18 9:31am
I'd add some exception handling, to find out which cases cause the error, and then step through the debugger, for one of those cases, to find out which line causes the error.
Richard MacCutchan 5-Aug-18 9:36am
"I am getting BUS ERROR for some test cases"
What test cases, and where do you get the error?
CPallini 6-Aug-18 2:52am
1. I want to find the number of distinct prime number of a given number,
2. I am passing a array to the function and then multiplying all the elements of the array to generate the number,
How are sentences (1) and (2) related?
KarstenK 6-Aug-18 4:03am
Really strange code, doesnt work for prime nummber.
Write some test data, include more output and use the debugger.

Solution 1

This code is weird:
C++
```for(int i=0;(i<A.size()-1);i++)
{
mul = mul*A[i];
}
```

because it multiply all number of the vector but the last one.
Quote:
I want to find the number of distinct prime number of a given number

Can you define this ?
Because as I understand it, it is not what is doing your code, it- is not even close.
As I understand it, your code return a list of all prime numbers below `mul`.

Complete your code so it can be run.
Show an input example that give you the error message.