Hello Sid
Your code is working for N=4,8 but failing when N=9 9 is expressed as 3^2 but your code is giving output as :Not possible. On Dec 26, 9:36 pm, sid1 <siddhantkhann...@gmail.com> wrote: > This algorithm won't work as primes might have different power. for > eg. N=12 > > 12 is divisible by 2 so it ends up being 3. then 3 divides by 3. So it > prints possible. But the actual answer is no. > Correct code: > > for (int i=2;i<=sqrt(n);i++) > { > float ans = log(n)/log(2); > int an = ans; > if (ans-an==0 && an!=1) > { > cout<<"possible "<<i<<"^"<<an<<" = "<<n; > break; > }} > > if (i>sqrt(n)) > { > cout<<"not possible"; > > } > > On Dec 26, 9:03 pm, SAMMM <somnath.nit...@gmail.com> wrote: > > > > > From Wht I can understand from problm to check whether N can be > > expressed a m^n : Eg: 1331=11^3 > > > What comes to my mind is to get all prime factors from 2 to SQRT(N) > > [Prime Sieve] , Here N is the Given Integer . > > > Now Iterate over the prime number(p) from 2 to Sqrt(N) > > do > > T=N; > > if(!(T%p)) while(!(T%p)) T/=p; > > if(T==1) {printf("Yes possible");break;} > > done > > if (p>Sqrt(N)) printf("Not Possible");- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.