zoukankan      html  css  js  c++  java
  • PAT 1059. Prime Factors

    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:
    97532468
    Sample Output:
    97532468=2^2*11*17*101*1291

    分析

    在输入的数据为1时输出1=1;
    
    #include<iostream>
    #include<math.h>
    #include<map>
    using namespace std;
    bool isprime(long int n){
    	for(int i=2;i<=sqrt(n);i++)
    	    if(n%i==0) return false;
    	return true;
    }
    int main(){
    	long int p,t=1,q;
    	cin>>p;
    	q=p;
    	map<long int,int> mapp; 
    	for(int i=2;i<=p;i++){
    		while(isprime(i)&&p%i==0){
    			 p/=i;
    			 t*=i;
    			 mapp[i]++;
    	    }
    	    if(t==q) break;
    	}
    	printf("%d=",q);
    	if(q==1) printf("1");
    	for(auto it=mapp.begin();it!=mapp.end();it++){
    		if(it!=mapp.begin()) 
    		   printf("*");
    		if(it->second==1)
    	       printf("%d",it->first);
    	    else
    	       printf("%d^%d",it->first,it->second);
    	}
    	return 0;
    } 
    
  • 相关阅读:
    java实现同步的两种方式
    JAVA线程概念
    XML基础总结
    JAVA使用和操作properties文件
    JAVA序列化基础知识
    easyui 在编辑状态下,动态修改其他列值。
    Activiti初学问题,求解
    java web--DOM
    java web(1)
    Java WEB
  • 原文地址:https://www.cnblogs.com/A-Little-Nut/p/8365366.html
Copyright © 2011-2022 走看看