Q. 서로 다른 2개의 자연수를 받아 그 사이에 존재하는 자연수의 합과 3의 배수의 제곱의 합을 구하여 출력하는 알고리즘을 제시하라.
(처리 조건)
- 함수 MOD(i,3) : 자연수 i를 3으로 나눈 나머지
- 순서도에서 사용되는 변수
① N1, N2 : 입력된 2개의 자연수 (N1<N2)
② i : 반복 처리
③ S1 : 두 자연수 사이의 존재하는 자연수의 합
④ S2 : 두 자연수 사이의 존재하는 3의 배수의 제곱의 합
≫ 순서도
≫ 코드
① Python
S1=S2=0
N1 = input("자연수 입력 : ")
N2 = input("자연수 입력 : ")
i = int(N1)
N2 = int(N2)
while(i<N2):
S1 = S1+i
if(i%3 == 0):
S2 = S2 + (i*i)
i = i+1
print(S1, S2)
② C
#include <stdio.h>
void main() {
int S1 = 0;
int S2 = 0;
int N1, N2, i;
printf("자연수 입력 : ");
scanf("%d", &N1);
printf("자연수 입력 : ");
scanf("%d", &N2);
for(i=N1; i<N2; i++){
S1 = S1+i;
if(i%3 == 0){
S2 = S2+(i*i);
}
}
printf("%d, %d", S1, S2);
}
③ Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int S1 = 0;
int S2 = 0;
Scanner sc = new Scanner(System.in);
System.out.print("자연수 입력 : ");
int N1 = sc.nextInt();
System.out.print("자연수 입력 : ");
int N2 = sc.nextInt();
for(int i=N1;i<N2; i++) {
S1 = S1+i;
if(i%3 == 0){
S2 = S2+(i*i);
}
}
System.out.println(S1);
System.out.println(S2);
}
}