zoj 2095 Divisor Summation
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1095
题目大意:求正整数 n 的真因子之和
解题思路:类似素数筛法
1 /////////////////////////////////////////////////////////////////////////// 2 //problem_id: zoj 2095 3 //user_id: SCNU20102200088 4 /////////////////////////////////////////////////////////////////////////// 5 6 #include <algorithm> 7 #include <iostream> 8 #include <iterator> 9 #include <iomanip> 10 #include <cstring> 11 #include <cstdlib> 12 #include <string> 13 #include <vector> 14 #include <cstdio> 15 #include <cctype> 16 #include <cmath> 17 #include <queue> 18 #include <stack> 19 #include <list> 20 #include <set> 21 #include <map> 22 using namespace std; 23 24 /////////////////////////////////////////////////////////////////////////// 25 typedef long long LL; 26 const double PI=acos(-1.0); 27 28 const int x4[]={-1,0,1,0}; 29 const int y4[]={0,1,0,-1}; 30 const int x8[]={-1,-1,0,1,1,1,0,-1}; 31 const int y8[]={0,1,1,1,0,-1,-1,-1}; 32 33 typedef int T; 34 T max(T a,T b){ return a>b? a:b; } 35 T min(T a,T b){ return a<b? a:b; } 36 /////////////////////////////////////////////////////////////////////////// 37 38 /////////////////////////////////////////////////////////////////////////// 39 //Add Code: 40 int ans[500005]; 41 /////////////////////////////////////////////////////////////////////////// 42 43 int main(){ 44 /////////////////////////////////////////////////////////////////////// 45 //Add code: 46 int Case,n,i,j; 47 ans[1]=0; 48 for(i=1;i<=250000;i++){ 49 for(j=i+i;j<=500000;j+=i) ans[j]+=i; 50 } 51 scanf("%d",&Case); 52 while(Case--){ 53 scanf("%d",&n); 54 printf("%d\n",ans[n]); 55 } 56 /////////////////////////////////////////////////////////////////////// 57 return 0; 58 } 59 60 /////////////////////////////////////////////////////////////////////////// 61 /* 62 Testcase: 63 Input: 64 3 65 2 66 10 67 20 68 Output: 69 1 70 8 71 22 72 */ 73 ///////////////////////////////////////////////////////////////////////////
posted on 2013-08-25 22:00 SCNU20102200088 阅读(163) 评论(0) 编辑 收藏 举报