コマンドプロンプトの動作がおかしい

コマンドプロンプトの動作がおかしい

C プログラムが比較的単純な場合 (単なるprintfコマンドなど)、コマンド プロンプトは次のように適切に出力します。

コード:

#include <stdio.h>
int main(){printf("Get out!");}

出力:

C:\Users\amish>gcc whatever.c
C:\Users\amish>a
Get out!

しかし、コードが次のようなものである場合:

#include <stdio.h>
  int is_composite(int a){
    int i;
    int b = 0;
     if(a == 1){b = 2;};
    for(i=2; i<a;i++){
     
    if(a%i ==0){b = 1;
    break;
    };
    
     
   
  }
   return b;}
  int main(){
    int n1;
    int n2;
    int k;
    int l;
    printf("ENTER TWO NUMBERS");
    scanf("%d", &n1);
    scanf("%d", &n2);

    for(k = n1; k<=n2; k++){
      l = is_composite(k);
      if(l == 0){printf("%d ", k);}
    }
   
    return 0 ;}

出力:

C:\Users\amish>gcc whatever.c
C:\Users\amish>a
Access is denied.

単純なコードでは機能するのに、複雑なコードでは機能しない理由が本当にわかりません。それとも、まったく別の理由があるのでしょうか? どなたか助けていただければ幸いです。

関連情報