Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 for 루프 활용법: 1부터 n 사이의 짝수 제곱수 구하기

짝수의 제곱수란 짝수를 제곱하여 얻은 값들을 말합니다. 예를 들면 다음과 같습니다.

22, 42, 62, 82, …
= 4, 16, 36, 64, 100, …

알고리즘

시작
1단계: 두 개의 변수 a와 n을 선언한다
2단계: 실행 시점에 숫자 n을 입력받는다
3단계: for 루프를 사용하여 제곱수를 출력한다
       a=2부터 시작하며, 조건식은 a*a<=n, 증감식은 a+=2이다
       조건이 만족되는 동안 루프가 계속되며 a*a를 출력한다
종료

프로그램 1: 짝수 제곱수 출력

다음 프로그램은 사용자로부터 n을 입력받아, 1부터 n 사이에 존재하는 모든 짝수의 제곱수를 출력합니다.

#include<stdio.h>
int main(){
    int a,n;
    printf("enter a number for n:");
    scanf("%d",&n);
    for(a=2;a*a<=n;a+=2) // 1과 n 사이의 짝수 제곱수를 출력{
        printf("%d\n",a*a);
    }
    return 0;
}

실행 결과

enter a number for n:200
4
16
36
64
100
144
196

n에 200을 입력하면 200 이하의 짝수 제곱수인 4(2²), 16(4²), 36(6²), 64(8²), 100(10²), 144(12²), 196(14²)가 차례대로 출력됩니다.

프로그램 2: 짝수 세제곱수 출력

같은 원리를 응용하면 1부터 n 사이의 짝수 세제곱수도 쉽게 구할 수 있습니다. 조건식과 출력문에서 곱셈 횟수만 하나 늘려주면 됩니다.

#include<stdio.h>
int main(){
    int a,n;
    printf("enter a number for n:");
    scanf("%d",&n);
    for(a=2;a*a*a<=n;a+=2){
        printf("%d\n",a*a*a);
    }
    return 0;
}

실행 결과

enter a number for n:300
8
64
216

n에 300을 입력하면 300 이하의 짝수 세제곱수인 8(2³), 64(4³), 216(6³)이 출력됩니다.

핵심 정리

이 프로그램의 핵심은 루프 변수 a를 2부터 시작하고 2씩 증가시켜(a+=2) 짝수만 순회한다는 점입니다. 또한 반복 조건을 a*a<=n(또는 a*a*a<=n)으로 설정하면, 미리 제곱근을 계산하지 않고도 n을 초과하지 않는 범위 내에서만 반복할 수 있어 코드가 간결해집니다.