4kyu Sum by Factors

题目背景:

Given an array of positive or negative integers
I= [i1,…,in]
you have to produce a sorted array P of the form
[ [p, sum of all ij of I for which p is a prime factor (p positive) of ij] …]
P will be sorted by increasing order of the prime numbers.

题目分析:

本道题简单地说就是如何求出某范围内所有的质数,所以核心的思路就是质数打表如何处理,在OJ题目中,质数打表是很常用的技巧,一般有经典的模板,此处附上我经常用的一个模板,可能和网上流传的版本有些不同,不过时间复杂度上也是O(n)线性级别的:

std::vector<bool> prime(max + 1, true);
for ( int i = 3; i <= max; i++ ) {if ( i % 2 == 0 ) prime[i] = false;
}
for ( int i = 3; i * i <= max; i++ ) {if ( prime[i] ) {for ( int j = i * i; j <= max; j += 2 * i ) {prime[j] = false;}}
}
// 最后的prime数组中,prime[i] 为true代表i为质数

最终AC的代码:

#include <string>
#include <vector>class SumOfDivided
{public:static std::string sumOfDivided(std::vector<int> &lst);
};std::string SumOfDivided::sumOfDivided(std::vector<int> &lst) {int max = 0;for ( int i = 0; i < lst.size(); i++ ) {if ( max < std::abs(lst[i]) ) max = std::abs(lst[i]);}if ( max <= 2 ) return "";std::vector<bool> prime(max + 1, true);for ( int i = 3; i <= max; i++ ) {if ( i % 2 == 0 ) prime[i] = false;}for ( int i = 3; i * i <= max; i++ ) {if ( prime[i] ) {for ( int j = i * i; j <= max; j += 2 * i ) {prime[j] = false;}}}std::string res = "";for ( int i = 2; i <= max; i++ ) {if ( prime[i] ) {long sum = 0;bool flag = false;for ( int j = 0; j < lst.size(); j++ ) {if ( lst[j] % i == 0 ){sum += lst[j];flag = true;}}if ( flag ) res += ('(' + std::to_string(i) + ' ' + std::to_string(sum) + ')');}}return res;
}

4kyu Sum by Factors相关推荐

  1. pca算法python实现_三种方法实现PCA算法(Python)

    主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目 ...

  2. 整体功能大于部分功能之和_功能性思考,第1部分

    关于本系列 本系列旨在将您的观点重新定位为实用的心态,帮助您以新的方式看待常见问题并找到改善日常编码的方式. 它探讨了函数式编程的概念,允许在Java语言中进行函数式编程的框架,在JVM上运行的函数式 ...

  3. 整体功能大于部分功能之和_功能性思考,第3部分

    关于本系列 本系列旨在将您的观点重新定位为实用的心态,帮助您以新的方式看待常见问题并找到改善日常编码的方式. 它探讨了函数式编程的概念,允许在Java语言中进行函数式编程的框架,在JVM上运行的函数式 ...

  4. 【算法】MVP 争夺战

    题干:MVP 争夺战题目描述 在星球争霸篮球赛对抗赛中,强大的宇宙战队,希望每个人都能拿到MVP. MVP 的条件是,单场最高分得分获得者,可以并列,所以宇宙战队决定在比赛中,尽可能让更多的队员上场, ...

  5. python中pca算法_Python使用三种方法实现PCA算法

    主成分分析(PCA) vs 多元判别式分析(MDA) PCA和MDA都是线性变换的方法,二者关系密切.在PCA中,我们寻找数据集中最大化方差的成分,在MDA中,我们对类间最大散布的方向更感兴趣. 一句 ...

  6. 三种方法实现PCA降维

    主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目 ...

  7. pca算法python代码_三种方法实现PCA算法(Python)

    主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目 ...

  8. 4kyu Sums of Perfect Squares

    4kyu Sums of Perfect Squares 题目背景: The task is simply stated. Given an integer n (3 < n < 109) ...

  9. 1096 Consecutive Factors (20 分)_24行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Among all the factors of a positive integer N, there may exist se ...

最新文章

  1. VS2008正式版创建silverlight项目失败的解决办法
  2. CodeForces-985C Liebig's Barrels
  3. 我们距离“云”还有多远?
  4. MyBatis源码分析-2-基础支持层-反射模块-TypeParameterResolver/ObjectFactory
  5. 利用ionic3进行上一行和左一行不动,中间移动的功能
  6. Dashboard集群
  7. python编写命令行框架_python的pytest框架之命令行参数详解(上)
  8. tomcat最新版本是多少_Tomcat在Windows 10下的安装配置教程
  9. 中国检测开关行业市场供需与战略研究报告
  10. LIO-SAM探秘第三章之代码解析(三) --- mapOptmization.cpp (1)
  11. cuda10.0及其驱动纯净卸载(笔记)
  12. 英语语法回顾7——状语从句特殊用法
  13. 幻数java题_java – ConcurrentModificationException的幻数
  14. 强化学习(二)--让你轻松玩转生成对抗网络(GAN)与生成对抗模仿学习(GAIL)
  15. 100句正能量的句子经典语句
  16. Java那些不为人知的特殊方法
  17. idea编辑jsp页面部分页面变黄绿色并且不提示,解决很简单,设置里边找language injection就ok...
  18. 模板匹配综述-SSD,BBS,DDIS,CoTM,QATM
  19. 【半年总结】——2015.08
  20. 优酷路由宝L1刷Breed和Padavan固件方法

热门文章

  1. 国内CVPR和图像处理领域的公司和研究机构
  2. java并发编程--Executor框架
  3. Git 分支 - rebase 变基
  4. 在 Java 应用程序中使用 Elasticsearch: 高性能 RESTful 搜索引擎和文档存储快速入门指南
  5. Thinking in java基础之集合框架
  6. 《Docker——容器与容器云》:第一章 从容器到容器云
  7. Matlab制作个人主页
  8. 一个fork的面试题
  9. Machine Learning week 7 quiz: Support Vector Machines
  10. Flask出现Error code 400, message Bad request syntax异常