Bonjour/Bonsoir à tous, voila je viens ici pour avoir de l'aide au niveau de la programmation en Fortrant 90. Etant débutant en C et encore plus en Fortrant, je n'arrive pas à faire cet exercice.
Voila donc le programme, je dois le traduire en Fortrant 90 (en remplaçant les GOTO)
DIMENSION M(20)
100 FORMAT (1H1,20X,34HDECOMPOSITION EN FACTEURS PREMIERS//)
101 FORMAT (30X,I3,2H =,I3,20(I4))
WRITE(*,100)
DO 5 I=1,50
N=I
K=0
IF(N.LE.2) GOTO 4
NS2=N/2
DO 2 L=2,NS2
1 IF (MOD(N,L).NE.0) GOTO 2
N=N/L
K=K+1
M(K)=L
IF(N.EQ.1) GOTO 3
GOTO 1
2 CONTINUE
3 IF (K.NE.0) WRITE(*,101) I,(M(L),L=1,K)
4 IF (K.EQ.0) WRITE(*,101) I,I
5 CONTINUE
END
Ma proposition (désolé si c'est nul lol j'ai eu qu'un "cours" de fortrant...)
Function ??
INTEGER NS2, K, N, M, L
DIMENSION M(20)
100 FORMAT (1H1,20X,34HDECOMPOSITION EN FACTEURS PREMIERS//)
101 FORMAT (30X,I3,2H =,I3,20(I4))
WRITE(*,100)
DO 5 I=1,50
N=I
K=0
IF(N.LE.2) THEN et4
ELSE
NS2=N/2
DO 2 L=2,NS2
ENDIF
1 IF (MOD(N,L).NE.0) THEN et2
N=N/L
K=K+1
M(K)=L
ENDIF
IF(N.EQ.1) THEN et3
ELSE et1
ENDIF
2 NEXT
3 IF (K.NE.0) WRITE(*,101) I,(M(L),L=1,K)
ENDIF
4 IF (K.EQ.0) WRITE(*,101) I,I
ENDIF
5 NEXT
END
Qu'en pensez vous ??? Si vous avez une solution à proposer, n'hésitez pas , merci d'avance.
Bonne soirée.
Message édité par ajy1 le 20-09-2011 à 19:36:24