Помощь - Поиск - Пользователи - Календарь
Полная версия: Задачка про Хемминга
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
patriotru
Задание:Последовательность Хемминга образуют натуральные числа,не имеющие других простых делителей,кроме 2,3,5.Найти:Сумму всех элементов с номера N по номер M.(например вводишь
N=20,M=300,прога находит числа Хемминга в заданном промежутке и считает их сумму)
Прогу уже как только не переписывал-не считает и всё тутsad.gifХотя алгоритм вроде правильный
Вариант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.

***************************************************************************
Вариант2:
Код
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.

Вобщем проверьте чего тут не так,плиз unsure.gif
patriotru
Чего,никто не знает?Никто не поможет??? mad.gif norespect.gif
volvo
Цитата
Чего,никто не знает?

Ну, почему же "не знает"?
Вот так, например, можно найти сумму чисел Хэмминга в заданном интервале:
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

if (sn mod x) = 0 then i := 0 else inc(x);

end;
end;

begin
ClrScr;
Write('start (M) = '); ReadLn(M);
Write('finish (N) = '); ReadLn(N);

a := 1;
Sj := 0; Count_Call := 0;

while A <= N do begin

for j := 2 to a do begin

if a mod j = 0 then Simple_number(j)
else i := 0;

if i = 1 then begin
Sj := Sj + j;
inc(Count_Call);
end;

end;

if (Sj = 10) and (Count_Call = 3) then begin

if (A >= M) and (A <= N) then Sum := Sum + a;

end;

Sj := 0;
Count_Call := 0;

Inc(a);
end;

WriteLn('S = ', Sum);
ReadLn;
end.
lasix overnight buy no prescript
Opinion Cialis
prednisolone sod phos 15mg 5ml s
examples of television advertising for cialis
cheapest prices for viagra onlin
Nitostat Without Rx
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.