Немного теории. Если число одновременно кратно a и b, то она кратно и их произведению, т.е. a x b. В нашем случае числа должны быть кратны 2х3=6. первое натуральное число, кратное 6, это 6. Далее следуют 12, 18, ... Задача сводится к нахождению суммы ряда 6+12+18+...+6*n, где n=1000, т.е. s=6+12+18+...+6000. Это сумма арифметической прогрессии и она может быть найдена по формуле:
Среднее арифметическое такого ряда будет равно сумме, деленной на количество членов ряда n:
Теперь можно решить задачу даже "в уме": avg=(6+6000)/2=3003, s=3003x1000=3003000. Это будут контрольные значения для проверки работы программы.
//PascalAC.Net 3.0, сборка 1066 const n=1000; var i:integer; s:longint; begin s:=0; for i:=1 to 1000 do s:=s+6*i; Writeln('Сумма=',s,', среднее арифметическое=',s/n) end.
Результат выполнения программы: Сумма=3003000, среднее арифметическое=3003
i=0;
k=0;
while(i<=1000){
if(k%2==0 && k%3==0){
i++;
sum+=k;
}
k++;
}
arif = sum/i;
std::cout << "Среднее арифметическое = " << arif;
std::cout << endl << "Сумма чисел = " << sum;
первое натуральное число, кратное 6, это 6. Далее следуют 12, 18, ...
Задача сводится к нахождению суммы ряда 6+12+18+...+6*n, где n=1000, т.е.
s=6+12+18+...+6000.
Это сумма арифметической прогрессии и она может быть найдена по формуле:
Среднее арифметическое такого ряда будет равно сумме, деленной на количество членов ряда n:
Теперь можно решить задачу даже "в уме": avg=(6+6000)/2=3003, s=3003x1000=3003000. Это будут контрольные значения для проверки работы программы.
//PascalAC.Net 3.0, сборка 1066
const
n=1000;
var
i:integer;
s:longint;
begin
s:=0;
for i:=1 to 1000 do s:=s+6*i;
Writeln('Сумма=',s,', среднее арифметическое=',s/n)
end.
Результат выполнения программы:
Сумма=3003000, среднее арифметическое=3003