60 12 -1
Case 1. 2 2 3 1 5 1 Case 2. 2 2 3 1Hint60=2^2*3^1*5^1
#include<iostream>
#include<cmath>
#include<string.h>
using namespace std;
int ls[65539];
int cnt[1000];
int u=0;
void prime()
{
for(int i=1;i<=65537;i++)
ls[i]=1;
for(int j=2;j<sqrt(65537);j++)
{
if(ls[j])
{
for(int k=j+j;k<=65537;k+=j)
ls[k]=0;
}
}
for(int r=2;r<=65537;r++)
{
if(ls[r])
cnt[u++]=r;
}
}
int main()
{
int n;int gq[65540];int h=1;
prime();
while(cin>>n&&n>0)
{
memset(gq,0,sizeof(gq));
for(int x=0;x<u;x++)
{
if(n%cnt[x]==0)
{
gq[cnt[x]]++;
n/=cnt[x];
}
if(n==1)
break;
else if(n<=cnt[x])
x=-1;
}
cout<<"Case "<<h++<<"."<<endl;
for(int p=0;p<=65534;p++)
{
if(gq[p])
cout<<p<<" "<<gq[p]<<" ";
}
cout<<endl<<endl;
}
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int n,ls[100],gq[50],flag=0,t=1;
while(cin>>n&&n>0)
{
if(flag)
cout<<endl;
memset(ls,0,sizeof(ls));
memset(gq,0,sizeof(gq));
int k=0;
for(int i=2;n!=1;i++)
{
if(n%i==0)
{
ls[k]=i;
while(n%i==0)
{
gq[k]++;
n/=i;
}
k++;
}
}
cout<<"Case "<<t++<<"."<<endl;
for(int m=0;m<k;m++)
cout<<ls[m]<<" "<<gq[m]<<" ";
cout<<endl;
flag=1;
}
return 0;
}杭电 HDU ACM 1405 The Last Practice
原文:http://blog.csdn.net/lsgqjh/article/details/44889873