Spoj 14863 – Summation of Multiples

Problem Link    খুবই সুন্দর একটা প্রবলেম আর সহজও তবুও আমি সমাধানটা ব্যাখ্যা করছি কারণ কিছু ট্রিক্স অনেকে অজানা থাকতে পারে তাই লিখলাম । ১-১০০ পর্যন্ত সবাই যোগ করার সূত্রটা জানো তারপরও দেখিয়ে দিচ্ছি : 1 + 2 + 3 + … + n = (n*(n+1))/2 ধর আমি ১-১০০০ পর্যন্ত ৩ ও ৫ এর মাল্টিপলগুলার Sum কত সেটা জানতে চাই । তার মানে ৩ আর ৫ এর মাল্টিপলগুলা বের করে যোগ করে দিলেই হচ্ছে তাই তো আর এটা আমাকে For loop নাহ চালিয়ে বের করতে হবে কারণ মূল প্রবলেমে N এর মান  ১০৯ পর্যন্ত হতে পারে আর ১০৯ পর্যন্ত লুপ চললে তো হইছেই কাম । logic টা হল ৩ এর সব মাল্টিপলগুলা যোগ করে রাখব N এর নিচের সংখ্যা পর্যন্ত । তারপর একিভাবে ৫ ও ১৫ এর সব মাল্টিপলগুলা যোগ করে রাখব N এর নিচের সংখ্যা পর্যন্ত । ১৫ কেন রাখব কারণ তুমি এমন কিছু সংখ্যাও যোগ করে ফেলেছ যেগুলা কিনা ২ বার যোগ হয়েছে একবার ৫ এ আরেকবার ৩ এ So সেগুলা বাদ দেয়ার জন্য ৩*৫ = ১৫ এর মাল্টিপলগুলার Sum দরকার । Sum of all numbers <1000 divisible by 3: 3 + 6 + 9 + … + 999 = 3 * (1 + 2 + 3 + … + 333) = (3 * (333*334))/2 = 166833 Sum of all numbers <1000 divisible by 5: 5 + 10 + 15 + … + 995 = 5 * (1 + 2 + 3 + … + 199) = (5 * (199*200))/2 = 99500 Sum of all numbers <1000 divisible by 15: 15 + 30 + 45 + … + 990 = 15 * (1 + 2 + 3 + … + 66) = (15 * (66*67))/2...