If you want to calculate an expression as if it was: int x=(3^6)+(a^a); use what @Stewbond proposed.
If on the other hand you want to solve an equation like this: int a=(3^6)+(a^a); in the mathematical sense (not C assignment sense) which makes it equivalent to (3^6)+(a^a)-a=0; then I guess you ll have to use an arithmetic method to approximate a numerical solution.
I guess you meant the former but it's not really clear so I referred both cases that come to my mind.