home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / P_FOTRAN.LZH / DEMOS.FOR / PRIME.FOR < prev    next >
Text File  |  1987-12-31  |  1KB  |  34 lines

  1.         PROGRAM PRIME
  2. C
  3. C   Repeatedly asks for input of a number and prints
  4. C   out its smallest factor, or says it is prime
  5. C
  6.         INTEGER*2  FACTOR,MAXFAC
  7.         INTEGER    NUMBER
  8. C   Start of main loop
  9.    10   WRITE(*,900)
  10. 900     FORMAT(' Input a positive number',
  11.      -         ' less than a thousand million: ')
  12.         READ (*,*) NUMBER
  13.         IF (NUMBER) 10, 10, 20
  14.    20   WRITE (*,920) NUMBER
  15. 920     FORMAT(' Smallest factor of ',I9,' is :')
  16. C   Is it divisible by 2?
  17.         FACTOR = 2
  18.         IF (MOD(NUMBER,2)) 30, 60, 30
  19. C   Number is odd, so try all odd divisors up to sqrt(number)
  20.    30   MAXFAC = SQRT(FLOAT(NUMBER)) + 1
  21.         DO 40 FACTOR = 3,MAXFAC,2
  22.         IF (MOD(NUMBER,FACTOR)) 40, 60, 40
  23.    40   CONTINUE
  24. C   Number is prime
  25.    50   WRITE (*,940)
  26. 940     FORMAT(6H Prime/)
  27.         GOTO 10
  28. C   Number is composite, provided "factor" is not "number"
  29.    60   IF (FACTOR.GE.NUMBER) GOTO 50
  30.         WRITE (*,960) FACTOR
  31. 960     FORMAT(I6/)
  32.         GOTO 10
  33.         END
  34.