Помогите перевести с Pascal на С++
Если необходимо,вот сама задача:
определить минимальное и максимальное расстояние между соседними простыми числами
в заданном диапазоне от N до M
var a,b:array[1..10000] of integer;
i,j,max,min,n,m,k,x:integer;
begin
read(n,m);
for i:=n to m do begin
k:=0;
for j:=1 to i do begin
if i mod j=0 then k:=k+1;
end;
if k=2 then begin
x:=x+1;
a[x]:=i;
end;
end;
max:=0;
min:=1000;
for i:=1 to x-1 do begin
if a[i+1]-a> max then max:= a[i+1]-a;
if a[i+1]-a< min then min:= a[i+1]-a;
end;
writeln;
write(min,' ',max);
end.
Код:
#include <stdio.h>
int main(void) {
int a[10000], b[10000], i, j, max, min, n, m, k, x=0;
scanf("%d %d", &n, &m);
for (i = n; i <= m; i++) {
k = 0;
for (j = 1; j <= i; j++) {
if ( 0 == i % j ) {
k++;
}
}
if (2 == k) {
a[x++] = i;
}
}
max = 0;
min = 1000;
for (i = 0; i < x-1; i++) {
if ( a[i+1]-a > max)
max = a[i+1]-a;
if ( a[i+1]-a < min)
min = a[i+1]-a;
}
printf("\n%d %d", min, max);
return 0;
}
int main(void) {
int a[10000], b[10000], i, j, max, min, n, m, k, x=0;
scanf("%d %d", &n, &m);
for (i = n; i <= m; i++) {
k = 0;
for (j = 1; j <= i; j++) {
if ( 0 == i % j ) {
k++;
}
}
if (2 == k) {
a[x++] = i;
}
}
max = 0;
min = 1000;
for (i = 0; i < x-1; i++) {
if ( a[i+1]-a > max)
max = a[i+1]-a;
if ( a[i+1]-a < min)
min = a[i+1]-a;
}
printf("\n%d %d", min, max);
return 0;
}
но вообще тут дофига чего ненужного)) хотя бы неиспользуемые переменные) потом простое ли число можно в общем случае посчитать быстрее (у нас же в данном случае не стоит задача посчитать число делителей), во-первых просто поставив выход если делитель не равен 1 или самому числу, а во-вторых, по определению простых чисел, делить для определения простоты надо только на предыдущее простые (а они у нас в массиве хранятся), а не на всё подряд, и ограничен максимальный делитель корнем из числа.. min и max задавать статическими тоже плохо))
При проверки выдает ошибку непредвиденный конец файла во время поиска предкомпилированного заголовка.
хз, смотрите либы, настройки компилятора.. Borland C++ 5.6 компилирует нормально, в остальных не тестил
а я на Microsoft Visual Studio 2010 Express
ну хз, попробуйте заменить stdio.h на iostream, дописать using namespace std; и заменить scanf, printf на cin>>, cout<<; возможно мс с stdio что-то намутили, я тут других precompiled headers не вижу)
Ох уж эти precompiled headers…Их лучше вообще в свойставах проекта отключить,для маленьких они не нужны.Либо разобраться с ними и оформить по правилам
Цитата: sting707
При проверки выдает ошибку непредвиденный конец файла во время поиска предкомпилированного заголовка.
Даю 99% гарантии, что в свойствах проекта предкомпилированный заголовок включен, в то время как сам stafx.cpp отсутствует.