POJ 2603

扫码查看
 #include<iostream>
#include<stdio.h>
#define M 350000
#define N 30000
using namespace std; int boo[];
int prime[N];
void give_list();
int main()
{
memset(boo,,sizeof(int)*);
give_list();
//freopen("acm.acm","r",stdin);
int tem;
int sum;
int i;
int j;
int ans;
sum = ;
ans = ;
for(j = ; j < ; ++ j)
{
cin>>sum;
for(i = ; i < N; ++ i)
{ while(sum % prime[i] == )
{
++ boo[prime[i]];
sum /= prime[i];
if(sum == )
break;
}
if(sum == )
break;
}
}
ans = ;
for(i = ; i < ; ++ i)
{
if(boo[i])
ans *= ++boo[i];
}
cout<<ans%<<endl;
system("pause");
} void give_list()
{
bool prime_1[M];
int i;
int j;
memset(prime_1,true,sizeof(bool)*M);
prime_1[] = false;
for(i = ; i < M; ++ i)
{
if(prime_1[i])
{
j = i * ;
while(j < M)
{
prime_1[j] = false;
j = j + i;
}
}
}
j = ;
for(i = ; i < M; ++ i)
{
if(prime_1[i])
{
prime[j] = i;
++ j;
}
}
}
04-26 17:32
查看更多