Trong bài toán này, chúng ta được cho một số N. Nhiệm vụ của chúng ta là tìm tổng của N số tự nhiên đầu tiên chia hết cho 2 và 7.
Vì vậy, ở đây chúng ta sẽ được một số N, chương trình sẽ tìm tổng các số từ 1 đến N chia hết cho 2 và 7.
Hãy lấy một ví dụ để hiểu vấn đề,
Đầu vào -
N = 10
Đầu ra -
37
Giải thích -
sum = 2 + 4 + 6 + 7 + 8 + 10 = 37
Vì vậy, ý tưởng cơ bản để giải quyết vấn đề là tìm tất cả các số chia hết cho 2 hoặc cho 7. Tổng này sẽ là -
Sum of numbers divisible by 2 + sum of numbers divisible by 7 - sum of number divisible by 14.
Tất cả các khoản tiền này có thể được tạo bằng công thức 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) )]
Tổng cuối cùng,
Sum = S2 + S7 - S14 Sum = [( (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) )]
Ví dụ
Chương trình minh họa giải pháp,
#include <iostream> using namespace 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 main(){ int N = 42; cout<<"The sum of natural numbers which are divisible by 2 and 7 is "<<findSum(N); return 0; }
Đầu ra
The sum of natural numbers which are divisible by 2 and 7 is 525