Anonymous user
Arithmetic/Rational/Objective-C: Difference between revisions
m
modernize
m (prepare for inclusion as template) |
m (modernize) |
||
Line 11:
BOOL withSign;
}
+(
+(
+(
+(
-(instancetype)initWithNumerator: (int)num andDenominator: (int)den;
-(
▲-(id)initWithInteger: (int)inum;
▲-(id)initWithRational: (RCRationalNumber *)rnum;
-(NSComparisonResult)compare: (RCRationalNumber *)rnum;
-(id)simplify: (BOOL)act;
Line 63 ⟶ 62:
@implementation RCRationalNumber
// initializers
-(
{
NSLog(@"initialized to unity");
Line 69 ⟶ 68:
}
-(
{
if ((self = [super init]) != nil) {
Line 85 ⟶ 84:
}
-(
{
return [self initWithNumerator: inum andDenominator: 1];
}
-(
{
if ( prec > 9 ) prec = 9;
Line 98 ⟶ 97:
}
-(
{
return [self initWithNumerator: [rnum numerator] andDenominator: [rnum denominator]];
Line 211 ⟶ 210:
}
// or just test if
-(BOOL)isNegative
{
return
}
Line 253 ⟶ 252:
// class method
+(
{
return [[
}
+(
{
return [[
}
+(
{
return [[
}
+(
{
return [[
}
@end</lang>
Line 280 ⟶ 279:
int main()
{
@autoreleasepool {
int i;
for(i=2; i < 0x80000; i++) {
int candidate = i;
RCRationalNumber *sum = [RCRationalNumber valueWithNumerator: 1
andDenominator: candidate];
int factor;
for(factor=2; factor < sqrt((double)candidate); factor++) {
if ( (candidate % factor) == 0 ) {
sum = [[sum add: [RCRationalNumber valueWithNumerator: 1
andDenominator: factor]]
add: [RCRationalNumber valueWithNumerator: 1
andDenominator: (candidate/factor)]];
}▼
}▼
if ( [sum denominator] == 1 ) {▼
printf("Sum of recipr. factors of %d = %d exactly %s\n",▼
candidate, [sum integer], ([sum integer]==1) ? "perfect!" : "");▼
}
}
▲ if ( [sum denominator] == 1 ) {
▲ printf("Sum of recipr. factors of %d = %d exactly %s\n",
▲ candidate, [sum integer], ([sum integer]==1) ? "perfect!" : "");
▲ }
▲ }
}
return 0;
}</lang>
|