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

求一个数的真因数。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

- {3 e4 v% ?4 L* [6 H
5 l& o6 _% _3 c4 J- g. C* N这个是一个函数,求一个数的真因数( y$ r9 ?% F: d4 l# O$ x- q
function y=myfun(n)
$ u5 z8 _: C) `8 N$ g  `6 r) `   y1=[];
2 d; Y( J7 E# f( k3 b7 \& p   for i=1:fix(n/2);' v  s" K; C8 E% I8 ^' J
       if mod(n,i)==0;
2 k; P( s1 X# {2 d; s3 J. e# O/ V           y1=[y1,i,n/i];( [4 g( f* ^' S% s  ~( |
       end
; q( L9 E9 Q/ M& i   end
8 D  ~) G( |9 a* D3 Q6 m$ x   y=unique(y1);   ( e2 H1 E1 J* K) B  Y8 d- y
end6 Q3 x  j! F* t) u! Z  a
然后我用这个函数求1到1000的亲和数对
+ ?# ~! k# }6 B4 O' L! C( _4 W! efor  a=1:10000;9 [1 W' ]$ R+ h5 n/ ?4 i( c( _% f$ |
" R/ a! e0 k" N1 b
    b=sum(myfun(a)); %求a的真因数和  为b! c7 R) g# u4 u; O( f

6 ?9 t5 O. U9 `2 I  }9 i    c=sum(myfun(b)); %求b的真因数和! `7 @6 Q2 @. |1 V

+ U: {! r+ V" p6 v- k) h      if   c==a  
9 u( L5 D) U& ^$ s8 G. k* X6 B5 s* {* E
          disp(a)                 %如果a的真因数和b的真因数相等  则输出a$ j6 l0 C4 Q( c

# i2 O- Z8 |! p" \      end
5 G* l0 X7 ~8 M0 X, I
3 t5 B+ A% l- O5 N7 B/ N$ d8 J3 D# ^9 N$ Wend
$ ]2 o; M. P5 x5 r' M
5 n  z2 W- }+ {: j& ?
" S3 m( d) y; t+ P* P( Q% m/ M  k; y

" ^; J- c8 G9 v0 O  t    但是他不输出任何数,
) J! J+ _3 C4 k7 s2 l附上亲和数对
' A, U$ D8 Z& v( [/ i) `亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。) X, k9 l8 r3 Z8 |8 v& p
就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。; N. `  u* f; I, C* h6 z* c
请教大神,非常感谢!

该用户从未签到

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

) P3 {1 ^* m% d% r! E你可以用sum函数,另外i增大时会和此前的n/i数值上发生重复,直接去掉后者
( P. }7 h! Q  a改成
$ P" u/ l  u. C3 @. Jy1 = [];
7 ]  \8 t$ W1 m+ V6 Z( Yfor i = 1:fix(n/2)
  d9 H  j; x- X7 t   if mod(n,i) == 0
, y" N) J6 K" m, \& i1 B7 Y* B       y1 = [y1,i];* Q5 w$ ^. \  t; X
   end! R' Y4 l# }2 n; x, J
end
* g+ Q5 l8 _1 z7 K( y& ~y = sum( unique(y1) );   9 u$ L% X# b  Q+ l/ U
end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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