poj 1365
整数因子分解。
#include<iostream>
#include<fstream>
#include<cmath>
using namespace std;
int n;
int a[32810];
void read(){
// ifstream cin("in.txt");
int i,j,k;
char c[1000];
a[1]=1;
for(i=4;i<=32800;i+=2)
a[i]=1;
for(i=3;i<=32800;i+=2)
if(a[i]==0)
for(j=2*i;j<=32800;j+=i)
a[j]=1;
while(gets(c)){
n=1;
if(c[0]=='0')
return;
for(i=0;i<strlen(c);)
{
j=0;
while(c[i]!=' ')
{
j=j*10+c[i]-'0';
i++;
}
i++;
int s=0;
while(c[i]!=' '&&i<strlen(c))
{
s=s*10+c[i]-'0';
i++;
}
i++;
n=n*pow(1.*j,s);
}
n--;
while(n!=1)
{
for(i=n;;i--)
if(a[i]==0&&n%i==0)
break;
j=0;
while(n%i==0){
n/=i;
j++;
}
cout<<i<<' '<<j<<' ';
}
cout<<endl;
}
}
int main(){
read();
return 0;
}
浙公网安备 33010602011771号