Эйлер задача 1 Проект Эйлера Задачи Golang and Rust

https://euler.jakumo.org/problems.html https://gobyexample.com.ru/ https://tourofrust.com/00_ru.html ----- package main import "fmt" func main() { sum := 0 for i := 1; i < 1000; i++ { if i%3 == 0 || i%5 == 0 { sum += i } } fmt.Println(sum) } ----- fn main() { let mut sum:u32 = 0; for i in 0..1000 { if i % 3 == 0 || i % 5 == 0 { sum = sum + i; } } println!("{}", sum); } ------------- Решение без цикла на js: n3 = Math.floor(1000/3); an3 = 3+3*(n3-1); // Math.floor(1000/3)*3 n5 = Math.floor(1000/5); an5 = 5+5*(n5-1); n15 = Math.floor(1000/15); an15 = 15+15*(n15-1); S=(3+an3)/2*n3+(5+an5)/2*n5-(15+an15)/2*n15; console.log(S); (3+Math.floor(1000/3)*3)/2*Math.floor(1000/3) 166833 (3+999)/2*333 166833 Это сумма чисел, которая делится на 3 без остатка Гуглить Арифметическая прогрессия Сумма арифметической прогрессии 2 5 8 11 14 .. A(n)=A(n-1)+d A(1)=A(1) A(2)=A(1)+d A(3)=A(2)+d = A(1)+d+d =A(1)+2d A(4)=A(1)+d = A(1)+3d => A(n) = A(1)+(n-1)d https://www.youtube.com/watch?v=iCQL469ZzM0