hdu 1299

来源:互联网 发布:迅雷看看播放器mac版 编辑:程序博客网 时间:2024/04/27 19:34

水题

无奈数论还是比较水


#include <cstdio>#include <cstring>const int MAXN = 40000;bool isprim[MAXN];int prim[MAXN];int main(){    for(int i = 2; i < MAXN; i++)    if(!isprim[i])    {        for(int j = i * i; j < MAXN; j += i)        {            isprim[j] = 1;        }    }    int num = 0;    for(int i = 2; i < MAXN; i++)    if(!isprim[i])  prim[++num] = i;//素数的筛选    //printf("%d\n",num);    int T;    scanf("%d", &T);    int cas = 1;    while(T--)    {        int n;        scanf("%d", &n);        long long sum = 1;        int fir = 1;        while(fir <= num && prim[fir] <= n)        {            int cnt = 0;            if(n % prim[fir] == 0)            {                while(n % prim[fir] == 0)                {                    cnt ++;                    n = n / prim[fir];                }                sum = sum * (1 + 2 * cnt);            }            fir ++;        }        if(n > 1)  sum = sum * 3;        printf("Scenario #%d:\n",cas++);        printf("%I64d\n\n",(sum + 1) >> 1);    }    return 0;}