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

求一个数的真因数。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
* Q' _9 H( W+ }& _: U; |9 `

4 z% z  D: V5 m& U% [5 A8 Y这个是一个函数,求一个数的真因数
. Z) h& Z4 U) P3 vfunction y=myfun(n)
5 M5 a; R- o8 R1 ~8 {. E   y1=[];
0 d) S/ u" P- C6 y- P   for i=1:fix(n/2);
6 @- |0 k! k' Y: ~( D       if mod(n,i)==0;5 o3 \) F7 z+ F, q* i& y* ~  P
           y1=[y1,i,n/i];. o2 @2 }6 U4 E+ n+ ~" `! P
       end
+ F8 e! ~8 F& l" |! V   end* H. Y5 @  b8 R' m" x% D
   y=unique(y1);   
8 Z  j. }1 F4 ~( ]6 lend
( H: W7 w  I& O' d3 a" C" z然后我用这个函数求1到1000的亲和数对2 k) W2 \/ o1 o" s
for  a=1:10000;
: x* K7 R4 D# Q+ |& u( |4 y2 c$ Q: `8 V9 R
    b=sum(myfun(a)); %求a的真因数和  为b3 [1 P) S- `+ J9 h
' x& v$ p% l1 b
    c=sum(myfun(b)); %求b的真因数和
; L% Z7 C) \# {) e
/ i. i; H1 w/ O) s' n6 S      if   c==a  
+ u- \) V& N1 S. k. [; F$ g" ^9 r- {! @% ^1 ]4 _6 U
          disp(a)                 %如果a的真因数和b的真因数相等  则输出a$ F! y; C# K& N# a% [* G
' W" M4 k1 i8 S0 _1 T
      end" z! W* j% w7 o( q5 C/ d: W* S7 ]
* h1 d, m$ N" ]
end( X4 Y6 x: S- f
; T' L& ]' g9 K/ V' \

5 x0 w9 U* g- @4 Z' }/ r7 o; ]2 V8 F1 M7 M6 y" `
6 `$ Z9 j' F; _- Z. M5 F0 A; q7 m* |
    但是他不输出任何数,- H  I% C! Q8 T9 x3 y
附上亲和数对
2 \* m% T- ?' x1 a, O0 _亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。
4 `, t# w; o: q3 T1 m就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。
6 ^5 c: R* k" i6 z4 @请教大神,非常感谢!

该用户从未签到

2#
发表于 2020-5-21 13:22 | 只看该作者

/ M: t) `; a" Q: \' I你可以用sum函数,另外i增大时会和此前的n/i数值上发生重复,直接去掉后者
1 S) n7 k8 e5 ~( Z. O改成
6 W. D& I3 I8 J* gy1 = [];
  ]) L) G: O% e4 F8 pfor i = 1:fix(n/2)
: V5 K5 T$ I) a. J$ a. ~' g3 w   if mod(n,i) == 0
, b% K0 p) `- |7 B7 l$ {       y1 = [y1,i];& U0 S1 |1 ?7 R# n7 R
   end
0 Z; j1 B; Q3 x$ A' iend
% `; R0 U' P; yy = sum( unique(y1) );   
+ ?. N% b$ k0 W5 fend
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 13:40 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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