POJ_1365_Prime_Land
//懒得解释
#include <iostream>
#include <cstring>
#include <cmath>
#include <cstdio>
using namespace std;
#define Max 110000
#define Size 100000
#define Type int
bool isPrime[Max];
Type primeTable[Max];
Type expCount[Max]; void primeRadiation(const Type& size){
memset(isPrime,true,sizeof(isPrime));
isPrime[1]=false;
for(Type i=4;i<=size;i+=2) isPrime[i]=false;
for(Type i=3;i<=sqrt(size);++i){
if(isPrime[i]==true){
const Type step=2*i;
for(Type j=i*i;j<=size;j+=step) isPrime[j]=false;
}
}
} int setPrimeTable(const Type& size){
memset(primeTable,0,sizeof(primeTable));
int index=0;
for(int i=1;i<=size;++i){
if(isPrime[i]==true){
index++;
primeTable[index]=i;
}
}
return index;
} void countExp(Type num){
memset(expCount,0,sizeof(expCount));
Type index=1;
while(num!=1){
if(num%primeTable[index]==0){
num/=primeTable[index];
expCount[index]++;
}
else{
index++;
}
}
} int main(){
char c;
Type base;
Type exp;
primeRadiation(Size);
Type t=setPrimeTable(Size);
while(1){
Type ans=1;
cin>>base;
if(base==0) break;
cin>>exp;
ans*=pow(base,exp);
while(1){
c=getchar();
if(c=='\n') break;
cin>>base;
cin>>exp;
ans*=pow(base,exp);
}
Type temp=ans-1;
countExp(temp);
for(Type i=temp;i>=1;--i){
if(expCount[i]!=0) cout<<primeTable[i]<<" "<<expCount[i]<<" ";
}
cout<<endl;
}
return 0;
}
POJ_1365_Prime_Land的更多相关文章
随机推荐
- hdu 1412 (STL list)
简单例题 题目:http://acm.hdu.edu.cn/showproblem.php?pid=1412 list 相关博客:http://www.cnblogs.com/fangyukuan/a ...
- 自定义一个compass可编译的目录结构
在学习compass的过程中, 根绝文档说明,如果使用compass create myObject命令会创建一个标准的Compass项目目录结构,如下图: 此时如果使用compass compile ...
- insert /*+APPEND*/ 各种insert 插入速度比较
SQL> select count(*) from t;COUNT(*)----------5442048****************************SQL> alter ta ...
- 真机无法接收到android.provider.Telephony.SMS_RECEIVED的问题
小米2S有一个设定会导致,App无法接收到android.provider.Telephony.SMS_RECEIVED广播. 解决方案 关闭系统短信优先设置 短信-设置-高级设置-系统短信优先 ...
- WCF学习笔记(一):WCF简介
转:http://www.cnblogs.com/wengyuli/archive/2009/11/04/1595693.html MSDN上关于WCF给出如下注解: 设计 Windows Commu ...
- Ext入门学习系列(五)表格控件(2)
上节学习了Ext中表格控件,从创建,到定义数据源.绑定显示,大体明白了一个基本的表格控件是怎么实现的.而我们用表格控件多用于从各种数据源接收数据并显示出来,并不是写死的.本章我们就不同数据源的不同实现 ...
- CXF之二(CXF发布webService)
Apache CXF提供了用于方便地构建和开发WebService的可靠基础架构.它允许创建高性能和可扩展的服务,可以部署在Tomcat和基于spring的轻量级容器中,也可以部署在更高级的服务器上, ...
- POJ 2378-Tree Cutting(树形dp)
题意: n个节点的树,删除一个点,得到的最大联通分支大小不大于总节点数的一半,求这样点的集合 分析:和上题一样 #include <map> #include <set> #i ...
- lightoj 1018 (状态压缩DP)
设dp[s]表示状态s下所需要的线段的个数,s的二进制中第x位为1就表示该状态下第x个点没被线段覆盖.需要预处理出来在任意两点之间连线所覆盖点的状态O(n^3),然后记忆化搜索即可. #include ...
- C# 多线程 方法,类的标记
[MethodImplAttribute(MethodImplOptions.Synchronized)] 此标记可用于方法,将一个方法标记为单线程进入,但在多个实例的时候仍有可能导致问题,比较有共享 ...