이 문제에서 숫자 N이 주어집니다. 우리의 임무는 2와 7로 나누어 떨어지는 처음 N개의 자연수의 합을 찾는 것입니다.
따라서 여기에 숫자 N이 주어지고 프로그램은 2와 7로 나눌 수 있는 1에서 N 사이의 숫자의 합을 찾습니다.
문제를 이해하기 위해 예를 들어보겠습니다.
입력 -
N =10
출력 -
37
설명 -
합계 =2 + 4 + 6 + 7 + 8 + 10 =37
따라서 문제를 해결하기 위한 기본 아이디어는 2 또는 7로 나눌 수 있는 모든 숫자를 찾는 것입니다. 이 합계는 -
2로 나눌 수 있는 수의 합 + 7로 나눌 수 있는 수의 합 - 14로 나눌 수 있는 수의 합
이 모든 합계는 A.P. 공식을 사용하여 생성할 수 있습니다.
<미리>S2 =[((N/2)/2) * ( (2*2)+((N/2-1)*2) )]S7 =[( (N/7)/2) * ( (2*7)+((N/7-1)*7) )]S14 =[( (N/14)/2) * ( (2*14)+((N/2-1)*14) )]최종 합계,
<미리>합계 =S2 + S7 - S14Sum =[( ((N/2)/2) * ( (2*2)+((N/2-1)*2) )] + [((N/7) /2) * ( (2*7)+((N/7-1)*7) )] - [( (N/14)/2) * ( (2*14)+((N/2-1) )*14) )]예시
솔루션을 설명하는 프로그램,
#include네임스페이스 사용 std;int findSum(int N) { return ( ((N/2)*(2*2+(N/2-1)*2)/2) + ((N /7)*(2*7+(N/7-1)*7)/2) - ((N/14)*(2*14+(N/14-1)*14)/2) ); }int 메인(){ 정수 N =42; cout<<"2와 7로 나누어 떨어지는 자연수의 합은 "< 출력
2와 7로 나누어 떨어지는 자연수의 합은 525입니다.