| 
 | 
	
    
 
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 
请教大神,非常感谢! |   
 
 
 
 |