zoukankan      html  css  js  c++  java
  • hdu 1215 七夕节

    刚看到这题就知道要有筛选,开始没想到怎么做,后来想,能不能将素数先筛出来,素数都为1嘛,然后再用暴力求剩下的,结果悲哀的RE了,于是上网查,看到他们竟然用筛选法直接求每个数的因子,感觉自己太笨了,一直以为,埃勒托色尼筛选法只能筛选素数,是我对算法的理解不够深入。。。。。。。

    代码:

     1 #include<stdio.h>
    2 #include<stdlib.h>
    3 #include<string.h>
    4 int f[500005];
    5 int main()
    6 {
    7 int i,j,t,n;
    8 for(i=0;i<=500000;i++)
    9 f[i]=1;
    10 f[0]=f[1]=0;
    11 for(i=2;i<=500000;i++)
    12 {
    13 for(j=2;j*i<=500000;j++)
    14 f[i*j]+=i;
    15 }
    16 scanf("%d",&t);
    17 while(t--)
    18 {
    19 scanf("%d",&n);
    20 printf("%d\n",f[n]);
    21 }
    22 return 0;
    23 }



  • 相关阅读:
    最长上升子序列问题总结
    Problem C
    Problem C
    Problem P
    Problem P
    Problem H
    Problem H
    Problem D
    Problem D
    Linux系统调用--getrlimit()与setrlimit()函数详解
  • 原文地址:https://www.cnblogs.com/misty1/p/2285305.html
Copyright © 2011-2022 走看看