把整數分解爲它的質因子以及質因子的冪次

功能:把N分解成 N=X^a+Y^b+Z^c      X,Y,Z時N的質因子

      輸入:N

      輸出:X a

               Y b

               Z c

代碼:

 

#include<cstdio>
#include<iostream>
#include<cstring>
#include<map>
#include<cmath>
using namespace std;
map<long long,long long>  mapK;
bool isPrime(long long k){
      for(int i=2;i<=sqrt(k*1.0);i++){
          if(k%i==0) return false;
      }
      return true;
}
long long findPrime(long long K){
     for(int i=2;i<=sqrt(K);i++){
          if(isPrime(i)!=0&&K%i==0) return i;
     }
}
int main(){
        int times;
        long long K;
         map<long long,long long>::iterator itK;
         scanf("%d",×);
         for(long long i=0;i<times;i++){
                    scanf("%d",&K);

                    while(isPrime(K)==0){
                            mapK[findPrime(K)]++;
                            K=K/findPrime(K);
                    }
                    mapK[K]++;

                    for(itK=mapK.begin();itK!=mapK.end();itK++ ){
                          cout<<itK->first<<" "<<itK->second<<endl;
                    }
                    }

        }
}

 

 

 

 

 

發佈了38 篇原創文章 · 獲贊 19 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章