why is it wrong?
Well, you don’t understand problem statement correctly. You should find minimal number x, that x divide all numbers in array A.
If you have only one number in array A, you print number A as result. But what if A=4. Then you claim, that smallest number is x=4. Yes, 4 divide all numbers in array, but number 2 also divide all numbers, but it’s smaller than 4. So correct result is 2.
Your code looks, like you want to find greatest common divisor. You don’t do it quick enough (and you can use C++ function __gcd() in library allgorithm) and it’s not the best approach. Because you’re looking for smallest common divisor.
I hope you now understand your problem. If you need further explanation, just ask.