[C言語]白駿1978:少数を探す



構想


n個入力します.4つあると仮定すると、4つを格納するために1つの空間が必要です.並べ替えてみようかな
今は少数の人を救出しなければならない.1少数ではないので例外処理をすべきだと思います.
2から、求める方法は簡単です.例えば、15の小数を判別することを考えてみましょう.
  • i=2から15まで増加した.ただし、15%i=0が小数でない場合は切断します.3から10までです.
  • それでは今回は19が少数かどうか判別してみましょう.
  • iは19に成長し続けます.ではcount++で少数の個数を増やし,次の配列(次の順序)に移動し,同じ論理で行う.
  • 私が解読したコード

    #include <stdio.h>
    
    int main()
    {
        int n, i, j;
        int arr[100];
        int count = 0;
        scanf("%d", &n);
        i = 0;
        while (i < n)
        {
            scanf("%d", &arr[i]);
            i++;
        }
        i = 0;
        while (i < n)
        {
            if (arr[i] >= 2)
            {
                j = 2;
                while (j <= arr[i])
                {
                    if (j == arr[i])
                        count++;
                    if (arr[i] % j == 0)
                        break;
                    j++;
                }
                i++;
            }
            else
                i++;
        }
        printf("%d", count);
    }

    他人を解く

    #include <stdio.h>
     
    int main(void)
    {
        int n;
        int num, count = 0;
     
        scanf("%d", &n);
        for (int i = 0; i < n; i++)
        {
            scanf("%d", &num);
            for (int j = 2; j <= num; j++)
            {
                if(num == j)
                    count++;
                if (num % j == 0)
                    break;
            }
        }
     
        printf("%d", count);
     
        return 0;
    }
    ソース:https://kiffblog.tistory.com/58
    同じ方法.並ばずに順番に処理して、もっと簡潔にします.