找回密码
 注册
关于网站域名变更的通知
查看: 918|回复: 1
打印 上一主题 下一主题

求一个数的真因数。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-5-21 11:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
* [! Y3 A- D: I# o5 j0 O

; i+ P" u$ d. [  k" K0 g! L这个是一个函数,求一个数的真因数; g+ I# f0 u" p2 s. B$ X
function y=myfun(n)
' B1 f7 q- K( Z) o, k. z( e" O   y1=[];  k6 t4 e( b& N5 b+ N
   for i=1:fix(n/2);
) ~6 y" ^6 ]4 o, K1 `$ g       if mod(n,i)==0;% J4 o, l5 W/ W! d
           y1=[y1,i,n/i];
: J, }' X; t! F7 g8 I       end& A( g! g7 P0 b2 x3 X
   end! U: H, Q3 ?- K! ], r0 O$ @2 w
   y=unique(y1);   
9 e' h/ I3 J4 A' l6 aend6 |# \+ a( D/ w: g1 c: M5 S
然后我用这个函数求1到1000的亲和数对0 P+ v! H! W  p; C" S5 J
for  a=1:10000;
9 H8 o& Q2 _0 P0 v
* f  D. \8 f$ j9 w( [3 k5 _& u    b=sum(myfun(a)); %求a的真因数和  为b/ B1 A3 N+ F( V9 o

1 Q$ @' ]- \$ b4 }6 W5 U    c=sum(myfun(b)); %求b的真因数和2 @4 m. s; L/ q* x. L

) s1 [) k/ o& M4 \3 o" A. t7 D: k: B      if   c==a  7 D& @: X6 `6 ]! g0 P; w2 e

2 d: K* U3 z6 a( k          disp(a)                 %如果a的真因数和b的真因数相等  则输出a5 k3 N1 E& G' x# V
7 K" n3 A6 ?- V4 Z0 ]4 p9 J
      end; j1 K( o* `* s" R, V# W
$ D" z6 p( N% {6 {' f) D/ }& j
end2 g  v5 W+ N' g8 ]
6 u: h7 x$ M6 \2 ^  w2 D
/ x3 \# Q0 I- [8 K6 m4 B) ^: F

  v* L' [" J" n% H) v9 B6 X
: R5 G9 b9 _" Z    但是他不输出任何数,% O! ]2 I, P1 R  g9 n
附上亲和数对; G: O) O4 M# i  c' t1 y
亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。' N: v# V' d8 S9 y
就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。
! V! Q$ f9 z4 L# g% e  U& r请教大神,非常感谢!

该用户从未签到

2#
发表于 2020-5-21 13:22 | 只看该作者
) v, Z' i- ]$ q/ ~, B% i. h
你可以用sum函数,另外i增大时会和此前的n/i数值上发生重复,直接去掉后者
/ K7 [& X9 V# _1 r$ c% A% s改成# }: w! A# Y4 M6 R2 {
y1 = [];- ]2 |% ]1 y6 z" \( O& g) e
for i = 1:fix(n/2)( Z; D, ~3 W0 Q  \$ B: W4 @
   if mod(n,i) == 0$ }' g1 T) ?( ^3 k9 P6 z+ D
       y1 = [y1,i];! u3 C# ?1 ]! A
   end' Z* Z5 P  m  @
end
: U8 s" Q. f* p* V* w2 hy = sum( unique(y1) );   
. l& b+ K0 s3 j' I- @: g: d7 gend
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-18 11:40 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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