|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
" N2 G' V" X' N7 K# N8 ]
2 Z7 H" g! j# T0 `) ?' W7 X这个是一个函数,求一个数的真因数
; u* O) O1 d3 ?# C7 x9 K* Efunction y=myfun(n)) I; v9 o0 Q+ K
y1=[];. L9 [' A/ i" J3 ?' g
for i=1:fix(n/2);. f( R: K% i4 P- r4 D: m$ k& M
if mod(n,i)==0;3 e8 _6 u& ~3 f7 [0 ?+ y: \
y1=[y1,i,n/i];2 ?( Z5 w/ S v6 I
end7 v; F# {9 U T1 F# J9 Y( X( Z- e( V( V
end5 G( ?+ j% l) H7 M$ |( l. ^! y' ]
y=unique(y1);
3 Z. k7 _1 _6 p3 N3 J7 }7 W3 V+ j) Rend
9 i" `; D1 X* X( t% p/ P3 b( H9 W, H然后我用这个函数求1到1000的亲和数对) @( `# t# B# r. y1 m
for a=1:10000;- q c( ~! [! n
$ X0 A1 n( t, |3 V2 {6 k$ ~/ G0 s
b=sum(myfun(a)); %求a的真因数和 为b
6 ~# z/ I5 b- I% _$ r7 c$ M; E: ]) m5 d+ t
c=sum(myfun(b)); %求b的真因数和+ G6 i6 A0 ^) t- B/ S
! A5 V6 K: t7 j1 Z+ O4 M
if c==a ' j, @- s4 W* V3 t( v
1 K. O7 b4 \: D& n
disp(a) %如果a的真因数和b的真因数相等 则输出a
9 _, z$ n. `- Q; v( g$ t5 \/ d3 M* S" f5 ]' Z# _
end
; E) S; \: f, O% h w _0 B( [! V6 B! ~; g" Z
end2 _. I# K, I7 v" H5 R
5 ]/ ]; F [2 F/ T
9 c, U" @4 ?+ ]; P) n/ n, I% d, W% I- R9 J0 j+ [/ {" U, U9 W$ H, ]
+ ?% d# z9 i0 G8 Q8 y$ r4 i 但是他不输出任何数,; Y% i6 }- @( u! v, |% a
附上亲和数对
% h5 d" A0 D3 z/ K2 W亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。
! _5 X! O. B8 I就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。
; D) O( _/ ?: q1 ~) g2 p+ G请教大神,非常感谢! |
|