Перевод с С на Паскаль

  • Автор темы Alex789
  • Дата начала
A

Alex789

Гость
#1
есть код на языке C
Код:
#include <stdio.h>
#include <math.h>
int main(){
int p=0;
int y=1;
int mersen=0;
int sum_sover=0;
int sover=0;
int check=0;
for(p=1;p<10000;p++){
mersen=pow(2.0,p)-1;
//проверка на простоту
// на диапазон чисел от 1 до 33 550 336
// делители 2,5,7,9,23,341
check=mersen/2;
if ((check*2)!=mersen)
{if (((mersen/5)*5)!=mersen)
{if (((mersen/9)*9)!=mersen)
{if (((mersen/7)*7)!=mersen)
{if (((mersen/341)*341)!=mersen)
{if (((mersen/23)*23)!=mersen)

{
sover=pow(2.0,p-1)*mersen;
if(sover > 10000){
sum_sover=sum_sover-1; // так как 1 не является совершенным числом
printf("Symma sovershennix chisel ot 1 do 10 000 ravna ");
printf("%d",sum_sover);
printf("\n");
return 1;}
sum_sover=(sum_sover+sover);
}}}}}}

}


return 0;}


необходимо перевести на язык паскаль

вот так я его перевел
Код:
program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;
var mersen:real;
var p:integer;
var sover:real;
var sum_sover:real;

var n:real;
begin
sum_sover:=0;

sover:=0;
for p:=1 to 10000 do
begin
n:=p;
mersen:=(exp(n)*ln(2.0))-1.0;

//-1;
//делаем проверку на простоту числа мерсена
if ((mersen/2)*2<>mersen)then

if ((mersen/5)*5<>mersen)then
if ((mersen/7)*7<>mersen)then

if ((mersen/9)*9<>mersen)then


if ((mersen/23)*23<>mersen)then

if ((mersen/341)*341<>mersen)then

sover:=(exp(p-1)*ln(2.0))*mersen;


if sover>10000 then
begin
sum_sover:=sum_sover+sover;
end
else
sum_sover:=sum_sover-1;

end;
//	 writeln('Symma chicel ravna', sum_sover);

readln;


end.
Но че-то не работает он не фига на паскале. Помогите кто чем может

/moderator/ Господа! Вы правила читаете! и вообще сколько можно создавать темы с неинформативными названиями