Correct method for getting Input?

im using codechef for first time.
what is the correct method for getting input?

solution 1:

#include <stdio.h>

#include <inttypes.h>
int i,b,n;
int main (){


scanf("%d",&n);
unsigned long long int temp[n],j;

for(i=0; i<n;i++){
	scanf("%llu",&temp[i]);}

	for(i=0; i<n;i++){
		b= 0;
	for(j=2; j<=temp[i]/2; j++){
		if((temp[i]%j) == 0){
			b++;
		if(b==2){break;}
		}
	}if(b==1){printf("YES\n");}
	else{printf("NO\n");}
}
return 0;
}

solution 2:

#include <stdio.h>

#include <inttypes.h>
int i,b,n;
int main (){


scanf("%d",&n);
unsigned long long int temp,j;

for(i=0; i<n;i++){
	scanf("%llu",&temp);


		b= 0;
	for(j=2; j<=temp/2; j++){
		if((temp%j) == 0){
			b++;
		if(b==2){break;}
		}
	}if(b==1){printf("YES\n");}
	else{printf("NO\n");}
}
return 0;
}

It is showing time limit exceed for both of them!!

Why do you think the TLE is because of your input method than your algorithm?

for(){for(){}}
you are using this kind of complex structure. read your problem carefully and design algo with least complexity.
ex.
for(){}
for(){}
is less complex then previous code.

Input method has a little effect on your time taken by your program if the input file is not too big . You must improve your algorithm to have a better time complexity .

Sorry, my question was, does it provide input one by one(& requri answeredfor each)…or provides all n inputs & wants all outputs at once.

//