您的位置:首页 > 其它

POJ 2603

2015-06-11 11:40 288 查看
#include<iostream>
#include<stdio.h>
#define  M 350000
#define  N 30000
using namespace std;

int boo[10000];
int prime
;
void give_list();
int main()
{
memset(boo,0,sizeof(int)*10000);
give_list();
//freopen("acm.acm","r",stdin);
int tem;
int sum;
int i;
int j;
int ans;
sum = 1;
ans = 1;
for(j = 0; j < 10; ++ j)
{
cin>>sum;
for(i = 0; i < N; ++ i)
{

while(sum % prime[i] == 0)
{
++ boo[prime[i]];
sum /= prime[i];
if(sum == 1)
break;
}
if(sum == 1)
break;
}
}
ans = 1;
for(i = 0; i < 10000; ++ i)
{
if(boo[i])
ans *= ++boo[i];
}
cout<<ans%10<<endl;
system("pause");
}

void give_list()
{
bool prime_1[M];
int i;
int j;
memset(prime_1,true,sizeof(bool)*M);
prime_1[1] = false;
for(i = 2; i < M; ++ i)
{
if(prime_1[i])
{
j = i * 2;
while(j < M)
{
prime_1[j] = false;
j = j + i;
}
}
}
j = 0;
for(i = 2; i < M; ++ i)
{
if(prime_1[i])
{
prime[j] = i;
++ j;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: