输入两个自然数a和b,判断b是不是是a的因数,输出判断结果 python?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入两个自然数a和b,判断b是不是是a的因数,输出判断结果 python?相关的知识,希望对你有一定的参考价值。

输出判断结果是:

int fun(int *a,int *b) if(*a == *b) return 1; else return 0;

Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。

扩展资料:

Python具有强大而丰富的类库,也经常被别人说是胶水语言,可以跟其它语言(c/c++)写的模块结合在一起。常见的情况是使用Python快速生成程序的原型,然后有一部分需要有特别高的要求,需要其它语言改写。

例如3D游戏中的图形渲染需要用到C/C++编写,然后封装成.py扩展类库由Python调用。需要注意的使用扩展类型需要考虑跨平台性。

参考技术A

相亲数--Python

  想亲数:在遥远的古代,人们发现某些自然数之间有特殊的关系:如果两个数a和b,a的所有除本身以外的因数之和等于b,b的所有除本身以外的因数之和等于a,则称a,b是一对相亲数

code:

 1 def sumFunc(n):   #这个是求真因数的和,真因数不包括自己
 2     a = 1
 3     b = n
 4     sum = 0
 5     while a < b:
 6         if n % a == 0:
 7             sum += (a + b)
 8         a += 1
 9         b = n / a
10     if a == b and n % a == 0:
11         sum += a
12     return sum - n
13 
14 for x in range(2,10000):
15     y = sumFunc(x)
16     if x < y and x == sumFunc(y):
17         print(x,"<-相亲数->",y)

这个求的是 2~10000 范围的想亲数

然后这里里面其实可以改进,由于一个数可能会多次求真因数,我们就可以浪费空间,将已经求取真因数的数存到字典里,并且将求取的值作为valuse。

 1 cache = {}
 2 def sumFunc(n):   #这个是求真因数的和,真因数不包括自己
 3     res = cache.get(n,0)  #如果没有取到这个value的值就返回0
 4     if res:
 5         return res
 6     a = 1
 7     b = n
 8     sum = 0
 9     while a < b:
10         if n % a == 0:
11             sum += (a + b)
12         a += 1
13         b = n / a
14     if a == b and n % a == 0:
15         sum += a
16     cache[n] = sum
17     return sum - n
18 
19 for x in range(2,10000):
20     y = sumFunc(x)
21     if x < y and x == sumFunc(y):
22         print(x,"<-相亲数->",y)

我们其实可以导入时间模块,来计算一下这两个算法时间的快慢,程序开始使用 time.time()  ,程序结束的时候在使用一次 time.time()  ,然后计算差值就可以了

以上是关于输入两个自然数a和b,判断b是不是是a的因数,输出判断结果 python?的主要内容,如果未能解决你的问题,请参考以下文章

POJ 1845Sumdiv——数论 质因数 + 分治 + 快速幂

输入三个实数,编程判断他们是不是能构成三角形

相亲数--Python

质因数分解

c语言辗转相除法求最大公约数和最小公倍数

基础练习 分解质因数