# -*- coding: utf-8 -*-
"""
TP1 : Introduction - Corrigé

PCSI2 - Albert Schweitzer - Le Raincy
"""

##Q3
a = 6
if a%2 == 0 and a%3 == 0:
    print('a est un multiple de 6')
elif a%2 == 0:
    print('a est pair')
elif a%3 == 0:
    print('a est un multiple de 3 impair')
else:
    print('a est quelconque')

##Q4
s = 0
for i in range(6, 101, 2):#on commence à 6, de 2 en 2 jusqu'à 100
    s = s + i
print(s)
##Q5
a = 999
c = 0 #Compteur
while a > 0:
    #a diminue strictement à chaque itération et reste positif
    print(a)
    a = a//10 #a perd un chiffre
    c = c + 1 #on compte un chiffre de plus
print(c)#total des chiffres de a

##Q6
from math import cos, pi
for i in range(5):
    print(cos(i*pi))

##Q7
from math import pi, e, factorial, log
print('Question 1 :')
s = 0
for i in range(1, 1001):
    s = s + 1/(i**2)
print('Somme :', s)
print('Valeur :', pi**2/6)

print('Question 2 :')
s = 0
for i in range(0, 1001):
    s = s + 1/(factorial(i))
print('Somme :', s)
print('Valeur :', e)

print('Question 3 :')
s = 0
for i in range(0, 1001):
    s = s + (-1)**i/(i+1)
print('Somme :', s)
print('Valeur :', log(2))

##Q8
#A commenter
a, b, c = 1, 2, 3

if b == 0:
    if a != 0:
        print("x = ", -c/a)
else:
    m = -a/b
    p = -c/b
    print("y = ", m, "x + ", p)

##Q9
#Premiers termes de la suite de Fibonacci
a, b = 0, 1 #Pour stocker deux termes successifs
for i in range(20):
    print(a)
    a, b = b, a + b #u(n) devient u(n+1) et u(n+1) devient u(n)+u(n+1)

##Q10
#Somme des entiers de 1 à 1000 qui sont divisibles par 3 ou 5
s = 0
for i in range(1, 1001):
    if i%3 == 0 or i%5 == 0:
        s = s + i
print(s)

##Q11
#Décomposition en facteurs premiers de :
from math import sqrt
n = 600851475143
m = n
while m > 1:
    i = 2 #facteur premier
    while m%i != 0:
        i += 1
    print(i)
    m = m//i