Guys i dont know how is this possible that there are different results of my code.

Here in C#

```
for (int i = 0; i < divider_count.Count; i++)
{
if (divider_count[i] % 2 == 0)
{
sqrt_factor *= (int)Math.Pow(divider_number[i], divider_count[i] / 2);
}
else if (divider_count[i] % 2 != 0 && divider_count[i] > 2)
{
sqrt_factor *= (int)Math.Pow(divider_number[i], (divider_count[i] - 1) / 2);
sqrt_root *= divider_number[i];
}
else
{
sqrt_root *= divider_number[i];
}
}
```

And here in Java

```
for (int i = 0; i < divider_count.size(); i++)
{
if (divider_count[i] % 2 == 0)
{
sqrt_factor *= Math.pow(divider_number[i], divider_count[i] / 2);
}
else if (divider_count[i] % 2 != 0 && divider_count[i] > 2)
{
sqrt_factor *= Math.pow(divider_number[i], (divider_count[i] - 1) / 2);
sqrt_root *= divider_number[i];
}
else
{
sqrt_root *= divider_number[i];
}
}
```

Could you tell me where i have wrong because code looks like the same, but the final result of c# dont equal of final result in java