2015年

6月

10日

Objective-C 素数

素数(そすう)というのは、「1より大きい整数で、1とその数以外で割り切れない数」のことです。 例えば、「5」は1より大きい整数で、1と5でしか割り切れないので素数です。 しかし、「6」は2や3でも割り切れるので、素数ではありません。
 とりあえず、1から100まで整数が素数かどうか調べてみると、以下のとおりです。


此処でもループ処理をして結果をだしています。

ViewController.m 素数表示

#import "ViewController.h"


@interface ViewController ()


@end


@implementation ViewController


- (void)viewDidLoad

{

    [super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

    

    // 初期処理

    self.tvdisply.text = @"";

    

    // 編集は不可 ストリートボード Behavioneditable」のチェックを外す

    self.tvdisply.editable = NO;

    

    // 約数の表示処理

    //[self doDivisor];

    

    // 素数表示処理

    [self doPrime];


}


- (void)didReceiveMemoryWarning

{

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


// 約数の表示処理

- (void)doDivisor

{

    //int x = 0;

    

    // (初期値;)

    // ループ1

    for (int i = 1; i <= 100; i++) {

        //NSLog(@"iの数値:%d",i);

        

        int l = 0;

        

        // ループ2

        for (int j = 1; j <= 10; j++) {

            

            //NSLog(@"jの値:%d*%d = %d",i,j,x);

            

            //

            double k = i % j;

            // 小数点以下2桁までのみをresultLabelに表示

            //[kk setText:[NSString stringWithFormat: @"%.2f", k]];

            

            // k = 0 割れたらならば l1をプラス

            if (k == 0) {

                l++;

            }

        }

        // AppendingFormat文字の追加

        self.tvdisply.text =

        [self.tvdisply.text stringByAppendingFormat:@"%d 約数の個数:%d \n", i, l];

    }

}


// 素数表示処理

- (void)doPrime

{

    //int x = 0;

    

    // (初期値;)

    // ループ1

    for (int i = 1; i <= 100; i++) {

        //NSLog(@"iの数値:%d",i);

        

        int l = 0;

        

        // ループ2

        for (int j = 1; j <= 10; j++) {

            

            double k = i % j;

            

            // k = 0 割れたらならば l1をプラス

            if (k == 0) {

                l++;

            }

        }

        // AppendingFormat文字の追加 この記述の中で i * j 掛け算して表示している

        if (i <= 10) {

            if (l == 1 || l == 2) {

                self.tvdisply.text =

                [self.tvdisply.text stringByAppendingFormat:@"%d 素数:%d \n", i, l];

            }

        } else {

            if (l == 1) {

                self.tvdisply.text =

                [self.tvdisply.text stringByAppendingFormat:@"%d 素数:%d \n", i, l];

            }

        }

    }

}


@end

DivisorViewController.m 約数の個数表示

#import "DivisorViewController.h"


@interface DivisorViewController ()


@end


@implementation DivisorViewController


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {

        // Custom initialization

    }

    return self;

}


- (void)viewDidLoad

{

    [super viewDidLoad];

// Do any additional setup after loading the view.

    

    // 初期処理

    self.tvdisply.text = @"";

    

    // 編集は不可 ストリートボード Behavioneditable」のチェックを外す

    self.tvdisply.editable = NO;

    

    // 約数の表示処理

    [self doDivisor];

    

}


- (void)didReceiveMemoryWarning

{

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


// 約数の表示処理

- (void)doDivisor

{

    //int x = 0;

    

    // (初期値;)

    // ループ1

    for (int i = 1; i <= 100; i++) {

        //NSLog(@"iの数値:%d",i);

        

        int l = 0;

        

        // ループ2

        for (int j = 1; j <= 10; j++) {

            

            //NSLog(@"jの値:%d*%d = %d",i,j,x);

            

            //

            double k = i % j;

            // 小数点以下2桁までのみをresultLabelに表示

            //[kk setText:[NSString stringWithFormat: @"%.2f", k]];

            

            // k = 0 割れたらならば l1をプラス

            if (k == 0) {

                l++;

            }

        }

        // AppendingFormat文字の追加

        self.tvdisply.text =

        [self.tvdisply.text stringByAppendingFormat:@"%d 約数の個数:%d \n", i, l];

    }

}


@end

GitHub Prime


▫️参考ページ

  

目 次