Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 5199|回复: 2

[分享] 编写自定义函数将数字因数分解

[复制链接]
发表于 2011-1-19 09:45 | 显示全部楼层 |阅读模式
参考以下代码:
  1. '判断质数的函数
  2. Function IsPrime(ByVal N)
  3.     Dim arr(1 To 2)
  4.     For i = 2 To N ^ 0.5    '判断N是否质数,只要从2开始遍历到N的平方根,找出是否存在因数即可
  5.         If Int(N / i) = (N / i) Then
  6.             '如果有因数,则不是质数
  7.             '结果返回数组,分别代表是否质数以及其因数
  8.             arr(1) = False
  9.             arr(2) = i
  10.             IsPrime = arr
  11.             Exit Function
  12.         End If
  13.     Next i
  14.     arr(1) = True
  15.     IsPrime = arr
  16. End Function
  17. '因数分解,采用递归算法
  18. Function Factors(ByVal X)
  19.     Dim ArrTemp
  20.     ArrTemp = IsPrime(X)
  21.     If ArrTemp(1) Then  '若X是质数则直接返回
  22.         Factors = X
  23.         Exit Function
  24.     Else '若X不是质数,则可继续分解
  25.          '用Factors(X / ArrTemp(2))继续返回其除以因数后的商的因数乘积
  26.         Factors = ArrTemp(2) & "*" & Factors(X / ArrTemp(2))
  27.     End If
  28. End Function
复制代码

附件下载: 分解因数.rar (8.31 KB, 下载次数: 6, 售价: 1 个金币)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-11-4 01:18 | 显示全部楼层
回复

使用道具 举报

发表于 2019-11-9 23:05 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 12:19 , Processed in 0.394514 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表