2020-2021-01 20201230 《信息安全专业导论》第十二周学习总结
作业信息:
教材内容:第十五章主讲网络的结构以及运行原理;第十六章主讲万维网,HTML标记语言简介以及网站写法的介绍。
本周学习中的收获:
1.算法学习数论积性函数理解
#include<stdio.h> #include<math.h> #define max_n 3 int prime[max_n + 5] = {0}; void min_primy(){ for (int i = 2;i * i <= max_n;i++) { if (prime[i]) continue; prime[i] = i; for (int j = 2 * i;j <= max_n;j+=i) { if (prime[j]) continue; prime[j] = i; } } for (int i = 2;i <= max_n;i++) { if (prime[i] == 0) prime[i] = i; } return ; } // prime组 标记最小素因; int logle[max_n + 5] = {0}; void func(){ for (int i = 2;i * i <= max_n;i++) { if (logle[i]) continue; for (int j = 2 * i;j < max_n;j += i) { logle[j] = 1; } } return ; } // logle 组标记合数; int number[max_n + 5] = {0}; void my_number(){ min_primy(); number[1] = 1; for (int i = 2;i <= max_n;i++) { int n = i,cnt = 0, p = prime[i]; while (n % p == 0) { cnt += 1; n /= p; } number[i] = number[n] * (cnt + 1); } } // number组 标出个数; void my_plus(){ int plus[max_n + 5] = {0}; min_primy(); func(); my_number(); plus[1] = 1; for (int i = 2;i <= max_n;i++) { if (logle[i] == 0) plus[i] = i + 1; } for (int j = 2;j <= max_n;j++) { if (plus[j]) continue; int n = j,sum = 0,cnt = 0,p = prime[j]; while (n % p == 0 ) { sum += 1; n /= p; if (n % p != 0) cnt += pow(p,sum); } plus[j] = plus[n] * cnt; } } main(){ my_plus(); int sum = 0; for (int i = 1;i < max_n;i++) { sum += number[i]; } printf("%d",sum); }
2.C语言框架性有了新的认识;
代码行数(新增/积累) | 学习时长(新增/积累) | 搏客量(新增/积累) | 重要成长 | |
目标 | 5000行 | 400小时 | 30篇 | |
第十二周 | 200/4400 | 30/360 | 5/32 |