|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
2 \+ H" _. ?) x0 e2 Z( M
$ C; w' w* U; L' r这个是一个函数,求一个数的真因数
) ?( b4 R( k9 _8 z0 I5 l2 m! e% e Hfunction y=myfun(n)
+ n+ m ?& R6 y7 ]3 `9 @% a0 A, R y1=[];
S* m6 j) \# }5 u7 x/ ~ for i=1:fix(n/2);
, A4 G$ X C; c% J; Y# X if mod(n,i)==0;! w- y7 y& H( @
y1=[y1,i,n/i];
/ d4 H: a4 Q- [, m" n+ O end
; S" \) n3 F: M/ @ end6 B3 B; K* v+ Z9 v
y=unique(y1); $ T5 e# J+ i6 ]
end# g( W% `. A# a% Y: |" m! f% C: `
然后我用这个函数求1到1000的亲和数对1 w9 b, |+ V! ?' y/ T; O
for a=1:10000;
% T% f2 v- l7 C- x# f
4 N5 r( }& P: M# r% d4 j6 w. m% Q6 D b=sum(myfun(a)); %求a的真因数和 为b
o! U# J" S6 O7 [
6 \. i6 Y: @+ [$ M c=sum(myfun(b)); %求b的真因数和
3 c) B4 J6 ~# W5 o( \5 \/ }( D3 x: P
if c==a
5 K' C0 @ z: ?$ o w7 v( V0 l# o7 _7 c
disp(a) %如果a的真因数和b的真因数相等 则输出a
$ ]' O# p' @& k2 _: Y7 e N2 y: G* Z9 y# M
end e J# x: g: Z- u7 V8 y0 v4 m
( [ h, Q- V7 Z$ Y
end1 e8 |) h( D. B/ `( f3 L# A
, F) |6 g- O3 S3 l5 u0 v: ^. x# I+ C3 {$ z& N) J
' ~* O3 V# H* ~: [$ @9 W" x3 I Q3 j1 R
但是他不输出任何数,
+ O7 C H4 W2 Z$ v$ I* k7 z附上亲和数对
[2 ^( P( e$ p( N亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。
% I3 q: H4 N1 P2 W就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。
* [/ R* V* C" I' n. {% m5 E请教大神,非常感谢! |
|