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

求一个数的真因数。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

) c" D2 ~9 b. |7 }; l: E. g0 b
! m" B. h7 w& d% [- O) g这个是一个函数,求一个数的真因数
) `$ C/ F6 [9 X$ l1 Afunction y=myfun(n)
! Z- T' {/ h7 F$ j3 P: N& a+ X   y1=[];! f0 {, O* h. _
   for i=1:fix(n/2);
, K# P- J' {* g% a% [       if mod(n,i)==0;3 Z( Z+ r5 W4 q3 ]0 i% r; n6 [( C
           y1=[y1,i,n/i];
& i% D/ u7 W. W+ Q  c% l       end
" N2 L+ {: S; Q1 q# G   end9 d. d6 J" N, j
   y=unique(y1);   
, ?+ q3 W0 n: F: G- Fend
& |" M9 K6 y0 a1 K! S* j然后我用这个函数求1到1000的亲和数对
7 v6 }4 M6 y4 X2 cfor  a=1:10000;
  L; }/ B9 ~0 a6 `8 x6 P$ P  Q) F  Z0 U7 V( P+ a" v% k, A
    b=sum(myfun(a)); %求a的真因数和  为b
7 x$ X  b% {. o6 b7 t- ^' P* s# Y/ \$ C+ I
    c=sum(myfun(b)); %求b的真因数和
) y0 L$ K1 x3 D; ]. z7 E1 ~- J, \1 l8 x
      if   c==a  5 p1 ?1 \, g& ?6 b5 n! v0 o

4 K" i" Q" f# b2 b          disp(a)                 %如果a的真因数和b的真因数相等  则输出a. B' T- X9 ?  m9 o0 W4 {1 e
  c* n0 E1 O" l* U) k$ w% z) G
      end3 l! o, a6 m0 w/ V& f5 U

' Q  N6 W: g* W/ a0 j2 @0 ~# ?end! X, b# ]9 P: J

8 w" l5 r( z0 M: J1 _/ W0 d, Z  A1 F  R; ~/ ?9 t
5 h) A( }3 X6 [: a: S

$ E  a: ~; e2 V; E8 A    但是他不输出任何数,7 W/ A0 L. q" J% t
附上亲和数对# S9 c& C' \& E' o0 E! |+ S
亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。- u7 E: Z, u: C* b
就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。" u# r8 v3 o3 j# T
请教大神,非常感谢!

该用户从未签到

2#
发表于 2020-5-21 13:22 | 只看该作者
9 u  ~" w1 z; [
你可以用sum函数,另外i增大时会和此前的n/i数值上发生重复,直接去掉后者  e2 V. K6 w7 P0 t
改成
7 W6 P8 W8 j. S* }- ly1 = [];2 d8 z9 _. }# t$ W
for i = 1:fix(n/2)
5 W5 x8 B4 C! A: M1 d% N4 O   if mod(n,i) == 0& }! J! R2 r/ c2 L
       y1 = [y1,i];
: |% }, J9 p. f" ^: `3 G   end
- S5 K, P1 c2 J+ F, B3 s: pend8 j7 P4 ~) v& l7 `" L  m/ i3 F1 y- z
y = sum( unique(y1) );   7 z" a& I  x# c# l% _# M5 a3 M
end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-23 23:38 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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