5kyu k-Primes

题目背景:

A natural number is called k-prime if it has exactly k prime factors, counted with multiplicity.

Task:

Complete the function count_Kprimes (or countKprimes, count-K-primes, kPrimes) which is given parameters k, start, end (or nd) and returns an array (or a list or a string depending on the language - see “Solution” and “Sample Tests”) of the k-primes between start (inclusive) and end (inclusive).

Second Task (puzzle):

Given positive integers s, a, b, c where a is1-prime, b is 3-prime, c is 7-prime, find the total number of solutions where a + b + c = s. Call this function puzzle(s).

题目分析:

本道题主要是如何计数素因子的个数,关于计数素数因子个数的方法,存在非常经典的因子分解的模板思路,先附上计数素因子个数的函数:

int KPrimes::count_primes(long long num){long long i = 2;int cnt = 0;while( i * i <= num ) {while( num % i == 0 ) {num /= i;cnt++;}i++;}if ( num != 1 ) cnt++;return cnt;
}

最终AC的代码:

class KPrimes{public:static std::vector<long long> countKprimes(int k, long long start, long long end);static int puzzle(int s);static int count_primes(long long num);
};int KPrimes::count_primes(long long num){long long i = 2;int cnt = 0;while( i * i <= num ) {while( num % i == 0 ) {num /= i;cnt++;}i++;}if ( num != 1 ) cnt++;return cnt;
}std::vector<long long> KPrimes::countKprimes(int k, long long start, long long end){if ( start > end || k < 1 ) return {};std::vector<long long> res;for ( long long i = start; i <= end; i++) {if ( count_primes(i) == k) res.push_back(i);}return res;
}int KPrimes::puzzle(int s){long long s1 = (long long)s;std::vector<long long> one_prime = countKprimes(1, 2, s1);std::vector<long long> three_prime = countKprimes(3, 8, s1); // 2 * 2 * 2 = 8std::vector<long long> seven_prime = countKprimes(7, 128, s1);int res_cnt = 0;for ( int cnt_1 = 0; cnt_1 < one_prime.size(); cnt_1++ ) {for ( int cnt_3 = 0; cnt_3 < three_prime.size(); cnt_3++ ) {long long sum = one_prime[cnt_1] + three_prime[cnt_3];if ( std::find(seven_prime.begin(), seven_prime.end(), s1 - sum) != seven_prime.end() ) res_cnt++;}}return res_cnt;
}

5kyu k-Primes相关推荐

  1. 找出前50个素数,构成素数表

    import java.util.Scanner;public class Hello {private static Scanner in;public static void main(Strin ...

  2. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  3. 素数的判断,以及素数的遍历

    去除偶数之后 从3到X-1,每次加 2 public static void main(String[] args) {// TODO Auto-generated method stubScanne ...

  4. 2020 年最全 Python 面试题汇总 (五)

    @Author:Runsen 文章目录 81.逆序对 82.手写一个栈 83.有效的扩号 84.扩号的生成 85.最长有效括号 86.比特位计数问题 87.判断给定的数是否为丑数 88.找出第 n 个 ...

  5. LightOJ1298 One Theorem, One Year(DP + 欧拉函数性质)

    题目 Source http://www.lightoj.com/volume_showproblem.php?problem=1298 Description A number is Almost- ...

  6. LeetCode 313. 超级丑数(动态规划)

    1. 题目 编写一段程序来查找第 n 个超级丑数. 超级丑数是指其所有质因数都是长度为 k 的质数列表 primes 中的正整数. 示例: 输入: n = 12, primes = [2,7,13,1 ...

  7. 素数筛选法(埃氏筛 欧拉筛)

    质数筛选法 文章目录 质数筛选法 前言 一.埃氏筛 O(nloglogn)O(nloglogn)O(nloglogn) 二.欧拉筛O(n)O(n)O(n) 总结 前言 当需要大范围内的素数时,例如1e ...

  8. 利用数组求前n个质数

    我的算法思想和实现方式都在代码和注释当中呢,这样的方式确实使算法复杂度降低一个等级,很好啊. #include <stdio.h> #include <time.h>/*** ...

  9. 素数的几种求法(java)

    笔记 1.素数,前50个数内是素数的数 已知x=2为素数,那么与2成倍数关系的数都不是素数,所以将他们划掉: 将x的值一次增加,只要是倍数,就不是素数. import java.util.Scanne ...

  10. 【算法专题】卡特兰数

    卡特兰数 1. 概述 卡特兰数:首先这个一个数,很多问题的结果都是卡特兰数,比如2016年全国三卷数学选择题压轴题让求解的就是卡特兰数,问题如下: 首先是结论:卡特兰数为: C 2 n n n + 1 ...

最新文章

  1. 百年科技的历史回顾与哲学反思
  2. 001_Spring概述
  3. [入门]理想的小白程序员成长曲线
  4. look look C#7
  5. ad中装配图如何导出_如何把endnote中的research note和title等一起导出成表格或者txt?...
  6. 如何绘制四线3格拼音
  7. 安全公司整理-方便找工作
  8. jar(jar -cvf)包压缩包含绝对路径问题
  9. Tracup体验报告
  10. java实现简单控制台出租房屋管理系统
  11. 射频单刀双掷开关常见结构
  12. Java网络编程:TCP实现群聊私聊代码
  13. 2023款MacBook Pro M2参数配置怎么样 性能怎么样 尺寸重量多少?
  14. 软件界面设计必备的色彩搭配技巧
  15. 浏览器 snippets
  16. final class java_Java 中常见的 final 类
  17. 通用gadget详解
  18. 新计算机显卡声音大,刚买回来的电脑主机噪音大怎么办
  19. ESP8266-Arduino编程实例-ADXL345三轴加速计驱动
  20. python not defined怎么解决_数据量太大?散点图装不下怎么办?用Python解决数据密度过大难题

热门文章

  1. 二叉树的层序遍历 使用队列和不使用队列
  2. 用户请求接口信息日志记录
  3. [Google Guava] 11-事件总线
  4. 使用 Sublime + PlantUML 高效地画图
  5. 关于编译器的一个问题
  6. 跟我一起写 Makefile(十一)
  7. JS第三方中间件的延伸
  8. 《数据科学:R语言实现》——2.5 使用Excel文件
  9. 科沃斯旺宝与阿里云联合参加通信展
  10. RAC实例 表空间 维护