1059. Prime Factors (25)
来源:互联网 发布:江苏移动网络测速 编辑:程序博客网 时间:2024/05/16 12:16
Given any positive integer N, you are supposed to find all of its prime factors, and write them in the format N = p1^k1 * p2^k2 *…*pm^km.
Input Specification:
Each input file contains one test case which gives a positive integer N in the range of long int.
Output Specification:
Factor N in the format N = p1^k1 * p2^k2 *…*pm^km, where pi's are prime factors of N in increasing order, and the exponent ki is the number of pi -- hence when there is only one pi, ki is 1 and must NOT be printed out.
Sample Input:97532468Sample Output:
97532468=2^2*11*17*101*1291
总觉得这道题目有点问题,要是输入的大数就是一个素数呢!肯定会超时啊!!!!晕~~~
思路:找出素数列表,依次与N判断即可
AC代码:
#include <iostream>#include <vector>#include <math.h>using namespace std;struct Node { long value; int countN;};vector<Node> arr(70);vector<long> primeArr;long N;long isPrime(long n){ if(n==2) return 1; for(long i=2;i<=sqrt(n);i++){ if(n%i==0){ return 0; } } return 1;}void findPrime(long n){ for(long i=2;i<=n;i++){ if(isPrime(i)){ primeArr.push_back(i); } }}int main(){ cin>>N; if(N==1){ cout<<"1=1"; return 0; } long cp = N; findPrime(10000); int index = 0; for(long i=0;i<primeArr.size();i++){ if(N%primeArr[i]==0){ if(index==0){ arr[index].value = primeArr[i]; arr[index].countN++; }else{ if(primeArr[i]==arr[index].value){ arr[index].countN++; }else{ arr[++index].value = primeArr[i]; arr[index].countN++; } } N /= primeArr[i]; i--; if(N==1){ break; } }else{ if(arr[index].countN>0){ index++; } } } cout<<cp<<"="; for(int i=0;i<index;i++){ if(arr[i].countN==1){ cout<<arr[i].value<<"*"; } if(arr[i].countN>1){ cout<<arr[i].value<<"^"<<arr[i].countN<<"*"; } } if(arr[index].countN==1){ cout<<arr[index].value; } if(arr[index].countN>1){ cout<<arr[index].value<<"^"<<arr[index].countN; } return 0;}
0 0
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- 1059. Prime Factors (25)
- Android 读写文件的N种写法
- php nginx超时出错
- nodejs安装
- Android基础-3(Fragment)
- Web.xml中的url-pattern详解
- 1059. Prime Factors (25)
- TP上传文件的自定义名称
- phonegap学习之CordovaWebView
- Java 变量初始化
- 浏览器工作原理之浏览器结构
- ActiveMQ REST Management API
- Oracle外连接与条件的组合
- DataGridViewCheckBoxColumn小结
- 和老BIOS说永别 EFI BIOS技术解析