1부터 끝까지 구할 때 하나하나 검사할 필요가 없습니다.
2로 나눈 나머지가 1이라면 4로 나눈 나머지는 무조건 1, 3중 하나이기 때문에 4로 나눈 나머지가 0, 2인 경우는 검사할 필요가 없습니다
힌트를 드리자면
for(int i=0;i<=100;i++){
if(i%2==0)printf("%d\n",i);
}
for(int i=0;i<=100;i+=2){
printf("%d\n",i);
}
위의 두 코드는 0부터 100까지 수 중 짝수만 출력하는 코드입니다.
결과는 똑같지만 위쪽 코드보다는 아래쪽 코드가 훨씬 빠릅니다.