`
JokerT
  • 浏览: 21907 次
  • 性别: 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的边界情况进行了预处理,代码如下:

 

 

分享到:
评论

相关推荐

    递归与分治算法练习

    一道关于递归与分治算法的练习题如下: 刚拿到题目觉得这题目似乎和递归分治没有什么关系,但是O(1)的空间复杂度,以及O(n)的时间复杂度度就限制了解决方法,也就是分治和递归。(使用python语言只需几行,用切片...

    蓝桥杯真题(数字三角形详解,洛谷P1236)

    算法多样:此题可以使用递归、记忆化搜索、动态规划等多种算法解决,为选手提供了广阔的解题空间。 思维训练:解决此题需要选手具备清晰的逻辑思维和优化的意识,有助于锻炼选手的编程思维和算法设计能力。 资源价值...

    php解决约瑟夫环算法实例分析

    今天偶遇一道算法题 “约瑟夫环”是一个数学的应用问题:一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数, 再数到第m只,在把它踢出去…,如此不停的进行下去...

    leetcode2-leetcode:leetcode

    众所周知,面试的时候,对于一道题,要求比编程比赛高,在编程比赛中,我们只关心算法的复杂度和程序的正确性,但是在面试的时候,面试官经常会问其他的问题,尤其是关于不同的实现和解决方案。 比如他可能会问你不...

    python入门到高级全栈工程师培训 第3期 附课件代码

    06 百分号字符串拼接 07 format字符串格式化 08 数学意义的函数与python中的函数 09 为何要有函数 10 函数返回值 11 可变长参数 第15章 01 上节课复习 02 全局变量与局部变量 03 风湿理论之函数即变量 04 函数递归...

    2025NOIP普及组.rar

    认真分析题目之后发现,本题搜索显然是不行的,而且对于只需计数而不需求具体方案的题目,一般都不会用搜索解决,其实本题不难看出,可以用乘法原理直接进行计数,用Fi表示数字i包括本身可以变成的数字总个数(这里...

    python中字符串变二维数组的实例讲解

    有一道算法题题目的意思是在二维数组里找到一个峰值。要求复杂度为n。 解题思路是找田字(四边和中间横竖两行)中最大值,用分治法递归下一个象限的田字。 在用python定义一个二维数组时可以有list和numpy.array两种...

    随机生成10个不重复的0-100的数字(实例讲解)

    在面试时,面试官问了我一道js题:随机生成一个含有10个元素的数组,且元素为0-100的不重复的整数。当时的第一反应是for循环生成10个数字,但是可能会有重复的情况;进一步思考,需要对生成的数字进行验证才能放到...

    IOI国家集训队论文集1999-2019

    姜尚仆 -《模线性方程的应用——用数论方法解决整数问题》 金 恺 -《探寻深度优先搜索中的优化技巧——从正方形剖分问题谈起》 雷环中 -《结果提交类问题》 林希德 -《求最大重复子串》 刘才良 -《平面图在信息...

    如何学习ACM,看后受益匪浅

    竞赛中设计的组合计数问题大都需要用组合数学来解决,组合数学中的知识相比于图论要简单一些,很多知识对于小学上过奥校的同学来说已经十分熟悉,但是也有一些部分需要先对代数结构中的群论有初步了解才能进行学习。...

    软件课程设计 试验报告 代码 演示

    1基础题_2.由计算机生成简单的四则运算题 1.1 需求分析: 本题主要是要求设计一个可以自动生成四则运算的测试器,并且完全由用户决定出加、减、乘、除哪一种运算题,以及出一位数还是两位数的运算题,同时还要对...

Global site tag (gtag.js) - Google Analytics