Форум «Всё о Паскале» _ Задачи _ Задачка про Хемминга
Автор: patriotru 11.12.2005 20:03
Задание:Последовательность Хемминга образуют натуральные числа,не имеющие других простых делителей,кроме 2,3,5.Найти:Сумму всех элементов с номера N по номер M.(например вводишь N=20,M=300,прога находит числа Хемминга в заданном промежутке и считает их сумму) Прогу уже как только не переписывал-не считает и всё тутХотя алгоритм вроде правильный Вариант1:
Код
program hemmingnew; uses crt; label konec; var N,M,a,i,j,z,S:integer; begin clrscr; writeln ('vvesti N i M'); readln (N,M); if N>M then begin a:=M; M:=N; N:=a; end; writeln ('diapozon chisel ot ',N,' do ',M); for i:=N to M do begin if (N mod 2=0) and (N mod 3=0) and (N mod 5=0) then begin for j:=7 to N-1 do begin for z:=2 to j-1 do if (j mod z =0) then goto konec; if (N mod j=0) then goto konec; writeln ('podxodiashee,N=',N); S:=S+N; end; end; konec: end; writeln ('S=',S); readkey; end.
program hemmiksa; uses crt; label delenie,konec; var M,N,S,i,a,j:integer; begin clrscr; S:=0; writeln ('vvesti N'); readln (N); writeln ('vvesti M'); readln (M); if N>M then begin a:=M; M:=N; N:=a; end; writeln (' N=',N); for N:=N to M do begin if (N mod 2=0) and (N mod 3=0) and (N mod 5=0) then begin for i:=7 to N do begin for j:=2 to i do begin if (i mod j=0) then goto delenie; end; if (N mod i=0) then goto konec else begin writeln ('nashelsia element'); S:=S+N; writeln ('nedeliashiisia element N=',N); end; delenie: end; end; konec: n:=n+1; end; writeln ('S=',S); end.
Вобщем проверьте чего тут не так,плиз
Автор: patriotru 12.12.2005 9:39
Чего,никто не знает?Никто не поможет???
Автор: volvo 12.12.2005 13:21
Цитата
Чего,никто не знает?
Ну, почему же "не знает"? Вот так, например, можно найти сумму чисел Хэмминга в заданном интервале:
uses Crt;
var N, M, a, i, j, Sj, Count_Call : Integer; Sum: LongInt;
procedure simple_number(sn: Integer); var x : integer;
begin x := 2; i := 1; while (x < sn) and (i = 1) do begin