বৃহস্পতিবার, ১ সেপ্টেম্বর, ২০১৬

UVA 11466 - Largest Prime Divisor

#include<bits/stdc++.h>
using namespace std;
main()
 {
    long long n,ans,i;
    long long cnt;
    while (cin>>n)
      {
         if(n==0)
            break;
         else
          {
          if(n<0)
          n=n*-1;
          ans=-1;
          cnt=0;
        for (i=2;i*i<= n;i++)
            {
               while (n%i == 0)
                    {
                        n/=i;
                        ans=i;
                    }
               if (ans==i)
                    {
                         cnt++;
                    }
               if(n==1)
                   break;
           }


        if (n!=1 && ans!=-1)
            ans=n;
        else if(cnt==1)
            ans=-1;
        cout<<ans<<endl;
       }
      }
}

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন

Factorization with prime Sieve

vector <int> prime; char sieve[1000009]; int N=1000009; void primeSieve ( ) { sieve[0] = sieve[1] = 1; prime.push_back(2); ...