Găsiți cel mai mare divizor nontrivial al unui număr natural, probleme pentru pascal, programare pentru

Formularea. Având un număr natural. Găsiți cel mai mare divizor nontrivial sau deduce o unitate, dacă nu există nici una.

Nota 1: un număr natural b este numit divizor al unui număr natural a.





pe care a este divizibil fără rest. Aceasta înseamnă că expresia "b - divizor a" înseamnă: a / b = k. unde k este un număr natural.

Notă: divizorul non-trivială a divizorului este numit, care este diferit de 1 și numărul însuși (deoarece unitatea și orice număr natural divizibil de la sine).







Soluția. Lăsați intrarea tastaturii să se facă la variabila n. Să încercăm să rezolvăm problema prin numere de forță brute. Pentru a face acest lucru, luăm un număr mai mic decât n și verificăm dacă n este împărțit de acesta. Dacă da, tipăriți rezultatul și ieșiți din buclă folosind instrucțiunea de pauză. Dacă nu, reduceți numărul cu 1 și continuați verificarea. Dacă numărul nu are divizori netriviali, atunci la un anumit pas, cecul va ajunge la unul, căruia îi va fi garantat partajarea numărului, după care se va emite un răspuns corespunzător.

Cu toate că, pentru a fi mai precis, aceasta va începe testarea unui număr egal cu n div 2 (a se debarasa partea fracționară a fisiune, dacă n este impar), deoarece nici un număr natural nu are divizori mai mult de jumătate din acest număr este. În caz contrar, coeficientul ar trebui să fie un număr natural între 1 și 2, care nu există.

Această sarcină este rezolvată și pentru. dar prin altă versiune, iar acum contorul va scădea de la ndiv 2 la 1. Pentru aceasta, nu va fi înlocuit cu downto. la poziția valorilor inițiale și finale rămân aceleași.

Algoritmul în limbaj natural:

2) Running o bucla la care i se schimba de la ndiv 2 la 1. În bucla:

1. Dacă n este împărțită i (adică, restul numerelor de diviziune n i este egal cu 0), ieșirea i la ecran și ieși din bucla prin pauză.

Apropo, operatorul de ramură dacă în buclă nu are alt bloc. Un astfel de operator condițional este numit operator de ramură cu o ramură.







Trimiteți-le prietenilor: