`
JokerT
  • 浏览: 22965 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

用递归解决的一道550分题

 
阅读更多

Problem Statement

The prime factorization of a number X is the list of prime numbers that multiply together to form X. For example,
the prime factorization of 12 is 2 * 2 * 3. Note that 1 is not a prime number.
An underprime is a number whose prime factorization contains a prime number of elements. For example, 12 is an
underprime because its prime factorization contains 3 elements, and 3 is a prime number. Given ints A and B, return
the number of underprimes between A and B, inclusive.
Definition

Class:
Underprimes
Method:
howMany
Parameters:
int, int
Returns:
int
Method signature:
int howMany(int A, int B)
(be sure your method is public)

Notes
-
A positive integer number is called prime if it has exactly two divisors - 1 and itself. For example, 2, 3, 5 and 7
are prime numbers, and 4, 6, 8 and 9 are not prime. By convention, 1 is not considered to be a prime number.
-
All prime factorizations of the same integer always contain the same prime numbers and can only differ by the order
of primes within them.
Constraints
-
A will be between 2 and 100000, inclusive.
-
B will be between A and 100000, inclusive.
Examples
0)


2
10
Returns: 5
The underprimes in this interval are: 4, 6, 8, 9, 10.
1)


100
105
Returns: 2
The underprimes in this interval are 102 = 2 * 3 * 17 and 105 = 3 * 5 * 7.
2)


17
17
Returns: 0
17 is a prime number, so its prime factorization contains one element. 1 is not a prime, so 17 is not an underprime.
3)


123
456
Returns: 217

 

问题是求给定的两个整数之间有多少个可以表示成素数个素数的乘积(真拗口)

代码关键是要对数字进行因数分解并判断因子本身及总数是否为素数,我用了递归来解决这个问题感觉还是蛮清晰的,对一个数字N从令i从2开始检验是否为N的因子,若是以N/i进入下一层,并随后跳出本次循环。对N=2的边界情况进行了预处理,代码如下:

 

 

分享到:
评论

相关推荐

    C++试题--递归

    - 假设空格位于第一象限 (Quadrant 1),那么第一象限就可以通过递归解决,因为它是缩小版的原问题。 - 一旦解决了第一象限的问题,我们可以在中心放置一个 L 形块,从而在其余三个象限中各创建一个空洞。 3. **...

    杭电ACM 题目分类 不完全 记录搜索,递归求解

    根据给定的信息,本文将对杭电...对于上述提到的每一道题目,都需要仔细分析题目背景,理解题目的具体要求,然后选择合适的算法和技术来解决问题。通过对这些知识点的学习和实践,可以有效地提升解决复杂问题的能力。

    一道算法题,亏在二叉树的构造和递归算法上了

    标题中的“一道算法题,亏在二叉树的构造和递归算法上了”暗示了这个问题主要涉及计算机科学中的数据结构,特别是二叉树,以及使用递归算法解决相关问题。在编程领域,二叉树是一种基础且重要的数据结构,常用于实现...

    javascript-leetcode面试题解递归与回溯问题之第1079题活字印刷-题解.zip

    本题解主要关注的是递归与回溯算法在解决实际问题中的应用,具体是LeetCode的第1079题——活字印刷。 活字印刷是一道典型的组合优化问题,它要求我们找到所有可能的组合方式,以满足特定条件。在这一题中,我们通常...

    递归回溯深度优先搜索DFS练习题(含C++源码)

    在这个过程中,DFS通常与递归和回溯策略结合使用,尤其在解决路径寻找、解谜游戏和图论问题时非常有效。本压缩包提供了几个基于DFS的C++编程练习题,让我们逐一解析这些题目并探讨其背后的DFS应用。 1. **《过河卒...

    javascript-leetcode面试题解递归与回溯问题之第77题组合-题解.zip

    第77题“组合”是LeetCode中的一道经典递归与回溯问题,旨在考察开发者对这两种编程技巧的理解和应用。 递归是一种解决问题的方法,它将一个问题分解为更小的子问题,直到子问题变得足够简单可以直接求解。递归通常...

    javascript-leetcode面试题解递归与回溯问题之第51题N皇后-题解.zip

    JavaScript LeetCode面试题解中的第51题是“N皇后问题”,这是一道经典的问题,主要涉及到了递归和回溯算法。在编程面试中,这类问题经常被用来考察候选人的逻辑思维能力和对复杂问题的解决能力。接下来,我们将深入...

    acm pku 3620 avoid the lakes 函数递归题

    该题目的C语言递归解决方案简洁明了,易于理解和实现。通过递归方法,我们能够有效地遍历所有可能的连续陆地区域,并计算出最大连续陆地面积。这种方法的关键在于正确地利用递归特性,避免重复计算同一块陆地,同时...

    算法面试题实用知识库分享

    这个问题是算法面试题中的一道经典题目,开发者需要掌握这个问题的解决方法。 算法笔记_面试题_2.移动零 本篇笔记主要介绍了移动零问题的解决方法,包括问题分析、解决方法等。这个问题是算法面试题中的一道常见...

    2020美团面试真题解析

    * 递归反转栈:这是一道递归算法题,考察了候选人的递归算法设计能力和问题解决能力。 * 判断链表是否有环:这是一道链表算法题,考察了候选人的链表操作能力和问题解决能力。 Android基础知识 * ANR是什么,怎么...

    程序员面试金典 – 面试题 08.05. 递归乘法(位运算)

    本文将探讨一道来自LeetCode的面试题——“递归乘法(位运算)”,它要求编写一个递归函数来实现两个正整数的乘法,而不能使用乘法运算符`*`。我们可以利用位操作(位移、异或等)来达到这一目标。 首先,我们需要...

    一道 Google 竞赛题的解法

    这道Google竞赛题目是关于...总之,解决此类问题需要理解图的搜索算法,熟练运用递归和回溯,以及考虑优化策略以提高解决方案的效率。在实际比赛中,还需要快速阅读和理解题目,以及在有限时间内写出高效、可读的代码。

    一道逻辑推理题的程序实现(纯属娱乐)

    标题中的“一道逻辑推理题的程序实现(纯属娱乐)”指的是通过编程来解决一个逻辑思维挑战的问题。这种问题通常需要运用到算法和数据结构的知识,可能是关于逻辑判断、搜索或者数学推理。在这个实例中,博主可能使用...

    一道腾讯面试题

    - **递归与回溯**:解决组合问题,如八皇后问题、迷宫问题等。 面试题可能综合了以上一个或多个知识点,要求候选人能够灵活运用所学知识解决问题。对于这类题目,理解并熟练掌握基本概念,同时具备良好的问题分析...

    一道月工资三万的面试题

    根据给定的信息,我们可以推断出这是一道与算法相关的面试题目。虽然提供的部分内容看起来较为混乱,但结合标题、描述及标签,我们可以尝试解析并构建一个相对完整的算法问题。 ### 题目背景 一家知名公司在招聘...

    程序员笔试常见简答题

    6. **酒桶分酒问题**:这是一道逻辑思维题,需要通过数学分析找出将酒平均分配的方法。这里可以使用动态规划或者穷举策略,确保在限制条件下找到解决方案。 7. **单词统计**:此题涉及文件读取、字符串处理和哈希表...

    经典的农夫养牛问题(面向对象和递归)

    在编程领域,经典的问题往往能够激发我们思考不同的解决策略,"农夫养牛问题"就是这样一道题。问题的核心是计算在一定年数后,一头牛繁殖的后代总数,假设每头牛三年后开始生育,每年生育一头牛,并且新生的小牛同样...

    算法练习题

    每一道算法练习题都是对编程思维的锻炼,通过解决这些题目,你可以加深对数据结构的理解,提升分析问题和解决问题的能力。不断实践和反思,你将能够编写出更高效、更优雅的代码,成为一名出色的程序员。因此,无论是...

    NOI.zip_NOI题库1.6答案_noi 1.6题库答案_noi.1.6_noi题库1.6_noi题库答案1.6

    4. 1.6.14.cpp:此题可能涉及到二分查找或者区间查询的问题,二分查找是一种高效的搜索算法,适用于有序数据,而区间查询则可能需要数据结构如线段树或平衡二叉搜索树的支持。 5. 1.6.6(2).cpp:此题可能是一个涉及...

    蓝桥杯java历年真题

    蓝桥杯 Java 历年真题中的一道题目使用递归算法来实现全排列算法。递归算法的优点是可以简洁地解决问题,但缺点是可能会出现栈溢出错误。 Java 中实现递归算法需要注意调用函数的返回值和终止条件,避免出现栈溢出...

Global site tag (gtag.js) - Google Analytics