
1. Re: How can I calculate the Greatest Common Divisor for two numbers?
Joe Oppelt Mar 22, 2016 8:22 AM (in response to Martin Fernandez)You might not want to do this in Tableau. It's going to need an iterative operation, and Tableau calcs aren't made for that.
I can tell you this: If you do something like the following, you can determine if a number is a valid divisor:
IF (INT([number field]/[attempted divisor])*[attempted divisor]) = [number field] THEN <do what you want to do when you have a valid divisor> END
By forcing an INT of the first division operation in that syntax, you'll truncate the decimal portion. So, for example, INT( 8 / 3 ) = 2. (2.667 gets truncated to 2.) And 2*3=6, and 6<>8, so this one would come up as FALSE.
In some basic programming language you can loop from 1 through [number field] and grab the iterations that comes up as TRUE. But we don't have a "loop" operation in Tableau. If you wanted to do it in tableau you would hardcode a bunch of nested IF statements that would accommodate your largest possible value. But what if your largest value is a million? And we don't have an array concept where you can store all the TRUE conditions so that you can compare those against some other number's list of divisors.
You're better off doing this in something outside of Tableau and bringing those results into the sheet through some data source where you've stored it.