zoukankan      html  css  js  c++  java
  • Poj 2603 约数个数和

    水题,求约数个数和,

    p1p2…pr为素数

    约数个数σ(n)=(1+e1)(1+e2)…(1+er)

    约数和τ(n)=(1+p1++…+)(1+p2++…+)…(1+pr++…+)

    σ(n),τ(n)都为乘性函数

    注意结果要取个位数,WA一次

     

    #include <iostream>

    #include <stdio.h>

    #include <string.h>

    using namespace std;

    const int MAX=10000;

    int prime[MAX+10];

    bool isprime[MAX+10];

    int hashprime[MAX+10];

     

    void getprime()

    {

    int i,j,cnt=0;

    memset(isprime,1,sizeof(isprime));

    isprime[0]=isprime[1]=0;

    for(i=2;i<=MAX;i++)

    {

    if(isprime[i])

    {

    prime[++cnt]=i;

    for(j=i*i;j<=MAX;j+=i)

    isprime[j]=0;

    }

    }

    prime[0]=cnt;

    }

     

    void gethashprime(int n)

    {

    int i;

    for(i=1;prime[i]*prime[i]<=n;i++)

    {

    if(n%prime[i]==0)

    {

    while(n%prime[i]==0)

    {

    hashprime[prime[i]]++;

    n/=prime[i];

    }

    }

    }

    if(n>1)

    hashprime[n]++;

    }

     

    int main()

    {

    int n,i;

    int sum=1;

    getprime();

    freopen("in.txt","r",stdin);

    for(i=1;i<=10;i++)

    {

    scanf("%d",&n);

    gethashprime(n);

    }

    for(i=1;i<=MAX;i++)

    if(hashprime[i])

    sum=sum*(1+hashprime[i])%10;

    printf("%d\n",sum);

    return 0;

    }

  • 相关阅读:
    第七次作业-话费充值
    第七次作业-qq登录&跳转
    第六次作业
    第五次作业
    第四次作业
    jsp第二次作业
    第一次jsp作业
    第九次作业
    第八次作业
    第七次2作业
  • 原文地址:https://www.cnblogs.com/inpeace7/p/2392163.html
Copyright © 2011-2022 走看看