|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
% v9 V( @4 R1 r/ m% B2 x
" e* @8 g/ @8 v1 e$ C这个是一个函数,求一个数的真因数6 ]' k4 M1 A d g
function y=myfun(n)
6 Y' k8 R" T. {+ Z" g6 T- ] y1=[];: f) F) ?; A+ N8 m
for i=1:fix(n/2);
V' c; q* n( G4 ], j- u if mod(n,i)==0;
* F! @* S; O$ C) U- L y1=[y1,i,n/i];
, s1 o9 x) V3 i. u( a8 V# S9 d end7 K0 I0 R! x& S. t V) w) j) {) p
end4 z N6 X# a& x. L
y=unique(y1);
- w& p3 J% ~; s& c* F7 r# send
* [# `* \3 k* N( N然后我用这个函数求1到1000的亲和数对
! \. o1 e6 a/ j7 [- l8 l" `5 r" qfor a=1:10000;
; z4 W; G- z V! V! d; ^. F
0 B- T5 B6 F* @! ?2 q b=sum(myfun(a)); %求a的真因数和 为b" u l& O* @/ W8 W0 H/ B
# T1 c0 B( C, r) b5 s7 P( n c=sum(myfun(b)); %求b的真因数和
2 B2 H8 m5 l1 x/ _0 O8 y4 o% N" z+ L+ S$ x9 n C) d$ O+ d
if c==a % @$ V. p5 V s$ w3 _' Q! z
- P" F# R2 K3 r6 @( M disp(a) %如果a的真因数和b的真因数相等 则输出a* d/ d3 D W x$ ?0 H
9 n8 i+ x5 H2 [! u% A
end% p/ u/ F% |" z) z
! _3 Z8 Q: a# B0 r. ?
end0 x% y M1 B% o9 T. u+ M5 K
3 Y1 S9 ?8 J0 d' F2 J
0 `9 f$ U8 ]4 p6 K! w
' U( s5 f3 `8 x( Y" ^3 b2 t* n
- i/ Z }! t1 u7 f0 \& Y 但是他不输出任何数,7 H! }) i, Y! Q1 D9 f
附上亲和数对) i, R$ N, a K* W$ T
亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。; x+ b: f3 a8 f5 v4 w8 s- b
就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。
7 g# [* j' t7 M2 [+ y) Y8 {: i4 @, l请教大神,非常感谢! |
|