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

求一个数的真因数。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

. X2 T" H( \- U  h% n; X
) a+ R1 E% H$ [- k/ f这个是一个函数,求一个数的真因数
% k, S! s/ ]$ G1 qfunction y=myfun(n)
$ o* D- P- u/ Z% n+ V1 N   y1=[];+ j  B; ?7 k6 m+ p- f
   for i=1:fix(n/2);( u) T0 h4 H# M' T& B# h
       if mod(n,i)==0;
% B) p% x0 A- a/ ]; y           y1=[y1,i,n/i];
* N; W* _; P' h& B; N. z; i& y       end$ p/ I) y" V+ @9 P* D3 M7 S) @! p
   end5 z! }6 b. _  d7 H0 y
   y=unique(y1);   
$ F3 y' `4 I+ ]end
% p3 f" Q+ Z& P, }3 H- z然后我用这个函数求1到1000的亲和数对
9 L' S1 b" t4 t& I$ _for  a=1:10000;, }6 N) K" n5 U' L
1 Q4 `' X+ ?0 I( E* u
    b=sum(myfun(a)); %求a的真因数和  为b
8 v( }# ?+ V8 T
6 C+ x! i/ S# v    c=sum(myfun(b)); %求b的真因数和8 B4 u, y$ P0 f% u' F* c0 b3 J

: [1 I" c& ?3 E+ x' ]# g      if   c==a  
/ T2 \% h  J$ f) ?
4 w$ i4 P0 f0 I8 R+ A# s, v          disp(a)                 %如果a的真因数和b的真因数相等  则输出a& d5 [: k* d8 d1 d& N' [6 z/ q
3 f# j- \9 I6 N) ]9 v4 A1 O3 K+ a4 B, s
      end
- G5 P* H3 o5 @, Z* l7 O; c* U! t8 W
end. J; T+ N: g0 m6 Z! \3 n% p% o9 E' ?5 I* B6 B
9 x. `, N+ B- A3 O+ e0 Z( @/ K- I; n
0 W! u$ s0 @/ A& v( g
/ a- I. S, X, ^5 F3 |: _  Z

) ]" _' o! D2 x& p! j! |* t    但是他不输出任何数,# F0 l5 k/ m2 L0 g
附上亲和数对  i: ~/ N+ }0 r# }
亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。3 \3 D, ^, }7 K3 F5 ]' q
就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。8 Q: }7 w6 x' H% H) X
请教大神,非常感谢!

该用户从未签到

2#
发表于 2020-5-21 13:22 | 只看该作者
# e: R# y6 ^9 p, ?
你可以用sum函数,另外i增大时会和此前的n/i数值上发生重复,直接去掉后者
6 J1 J# j% s( ?% U8 Y2 M, Y( G改成/ X/ i" Q# l) }: E8 X3 y0 R- o
y1 = [];- {6 V; B$ W9 m" D4 R( s6 d* r
for i = 1:fix(n/2)1 K9 W: w) A8 q4 D/ E
   if mod(n,i) == 04 Y4 S6 c6 F2 K8 ?
       y1 = [y1,i];" B' S7 o* O4 f# J4 @, A
   end
( s# l0 w# ^% {+ o1 n/ F# Y0 jend: k+ S% d  ?3 `4 l3 c/ V
y = sum( unique(y1) );   4 h  u3 z% I5 v4 A# p2 N/ A
end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-23 02:19 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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