当前位置: 首页 > 知识库问答 >
问题:

在给定范围内查找特殊数的个数

郭辉
2023-03-14

我无法降低这个问题的复杂性。请给出一些更好的方法。

有没有一个我不知道的数学公式,或者它可以用更好的方法来完成?

 A special number is not divisible by any number of the form Z*Z where (Z>1).

我是这样做的:

    import math
    def special(x):
        flag=1
        i=2
        if(x==0 or x==1 or x==2):
            return 1
        while(i*i <= x):               //This is the best i can think to limit the numbers.
            if(x%(i*i)==0):
                flag=0
                break
            i=i+1
        return flag

    t=int(raw_input())
    while(t):
        x,y=map(int,raw_input().split())
        count=0
        for i in xrange(x,y+1):
            if(special(i)):
                count+=1
        print(count)
        t=t-1

共有1个答案

景星华
2023-03-14

special(x)中,您只需迭代小于或等于sqrt(x)的素数。所以我会预先计算一个素数列表(列出N以下所有素数的最快方法)。

 类似资料:
  • 我有N个数字,让我们说。现在我想找出在给定范围内有多少对数字。(L和R给定)。数字对=两个数字相同。我的方法:

  • 本文向大家介绍编写Golang程序以查找给定范围内的质数,包括了编写Golang程序以查找给定范围内的质数的使用技巧和注意事项,需要的朋友参考一下 例子 输入num1 = 3和num2 = 8 =>质数是:3、5、7 输入num1 = 8和num2 = 23 =>质数是:11,13,17,19,23 解决这个问题的方法 步骤1:定义一个接受两个数字num1和num2的函数,类型为int。 步骤2:

  • 基本上,我有一个基于php/mysql的系统和一个包含LAT/LNG中一组点的表。 在另一端,我有一个带有谷歌地图的iOS应用程序,当相机位置改变时,我会提交用户正在观察的当前区域的上/左、下/右点(这是我需要的,我不需要地图的可视点)。 我需要能够找到这些点的一个特定子集,给出一个边界“框”--地球上的一个矩形区域--有一个上/左,下/右点。 这是可行的-没有问题。 但是当地图被自由旋转时-事情

  • 我正在尝试编写一个Heap排序方法,它只在传入方法的给定范围内执行排序。传入的范围是低和高,这些值对应于堆中的值,而不是堆的索引。例如,输入数组可能是:28 10 49 20 59 61 17,如果low=49,high=61,Heap排序后的结果数组将看起来像这样:28 10 20 49 59 61 17。范围之外的值保持不变。我已经有了一个工作的Heap排序方法,但我的问题是如何修改这个方法以

  • 假设您有一个间隔列表,例如[(0 4),(1 3),(2 5),(2 6)]。此列表未排序。然后给您一个范围,如[1 5]。您必须返回适合范围内的间隔数。在这个问题中,它将返回2。((1 3)和(2 5)) 间隔列表保持不变,但我们最多得到100000个查询,每个查询由一个范围组成。对于每个范围查询,我们必须返回适合其中的间隔数。 在研究之后,我读到了间隔树。但是,您只能查询与任何给定范围重叠的间

  • 所以我必须写一个程序,找到给定范围之间的所有回文数。程序必须使用numDigits()方法,该方法接受int数并返回该int的位数。 一个isPalindrome()方法,它将接受一个int数字,并返回一个布尔值true或false,无论该数字是否回文 我在这里编码了一个numDigit()方法: 我知道如何用另一种方法找到回文,但作业是专门针对这种技术的。我如何实现这个numDigit()方法来