Замечание: в старых версиях паскаля вместо integer нужно использовать byte. var n,i:integer; s1, s2: set of integer; function prost(n:integer):boolean; var j,m:integer; begin m:=0; for j:=2 to trunc(sqrt(n)) do if n mod j = 0 then inc(m); prost:=m=0; end; begin readln(n); s1:=[1]; s2:=[]; for i:=2 to n do if n mod i=0 then begin s1:=s1+[i]; if prost(i) then s2:=s2+[i]; end; writeln('Все делители:'); for i:=1 to n do if i in s1 then write(i,' '); writeln; writeln('Все простые делители:'); for i:=1 to n do if i in s2 then write(i,' '); writeln; writeln('Делители, которые не являются простыми:'); for i:=1 to n do if i in (s1-s2) then write(i,' '); end.
Пример: 340 Все делители: 1 2 4 5 10 17 20 34 68 85 170 340 Все простые делители: 2 5 17 Делители, которые не являются простыми: 1 4 10 20 34 68 85 170 340
#include <Windows.h>
int main()
{
int v;
double S, t, t1, tmpT,tmpT1,b,tmpT3;
std::cout << "V - km\h: ";
std::cin >> v;
std::cout << "\nS - km: ";
std::cin >> S;
std::cout << "\nT - hour: ";
std::cin >> t;
std::cout << "\nT1 - minut: ";
std::cin >> t1;
tmpT = S / v;
t -= tmpT;
tmpT3 = t - tmpT;
if (tmpT3 < t)
{
std::cout << "edem bez ostanovok" << std::endl;
system("pause");
exit(1);
}
tmpT1 = (t * 60) / t1;
b = (double)(int)tmpT1;
std::cout << "kol ostanovok: " << b << std::endl;
system("pause");
}