Практика программирования (Бейсик, Си, Паскаль)


Задачи,советы и ответы - часть 36


Программа 2_21.bas

DECLARE FUNCTION prime!(N&)

REM Проверка числа на простоту

CLS

INPUT "Введите целое число: ", М&

IF prime (M&)=1 THEN

PRINT "Это число - простое " ELSE

PRINT "Это число - составное"

END IF

END

FUNCTION prime(N&)

REM Если N - простое, то prime = 1

DIM j AS LONG

IF N&<4 THEN GOTO Ml : ' Числа 2, 3 - простые

IF N& MOD 2=0 THEN GOTO MO : ' Четные числа - составные

REM Проверка делимости на нечетные числа

FOR j=3 TO SQR(N&)+1 STEP 2

IF N& MOD j=0 THEN GOTO MO NEXT j

Ml: prime=l: EXIT FUNCTION M0: prime=0 END FUNCTION

Программа 2_21.с

/* Проверка числа на простоту */

#include <stdio.h>

#include <math.h>

int prime(long N) ;

main() {

long M;

char *a[]={"составное","простое"};

printf("\n Введите целое число: ");

scanf("%ld",SM);

printf("\n Это число - %s", a[prime(M)]);

getch(); }

int prime(long N)

{

/* Если N - простое, то prime = 1 */

long kmax,j;

if(N<4) return 1; /* Числа 2, 3 - простые */

if(N % 2==0) return 0; /* Четные числа - составные */

/* Проверка делимости на нечетные числа */

for(j=3; j*j<=N; j+=2)

if( N % j==0) return 0; return 1;

Программа 2_21.pas

program prostota;

{ Проверка числа на простоту }

var

М:longint; const

a:array [0..1] of string=('составное','простое');

function prime(N:longint}:byte;

{ Если N - простое, то prime = 1 }

var

j:longint; label ml;

begin

prime:=1;

if N<4 then exit; { Числа 2, 3 - простые }

prime:=0;

if N mod 2=0 then exit; { Четные числа - составные }

j:=3;

{ Проверка делимости на нечетные числа }

ml:

if N mod j=0 then exit;

j:=j+2;

if j*j<=N then goto ml;

prime:=1; end; begin

writeln ('Введите целое число: ');

readln(М);

writeln('Это число - ', a[prime(М)]);

readln; end.

Задание 2.22. Решето Эратосфена

История сохранила память о древнегреческом математике Эратосфене Кипренском, который применил оригинальный алгоритм нахождения всех




- Начало -  - Назад -  - Вперед -