Bonjour,
Je sais de quoi je parle, mais ça fait longtemps que je n'ai pas pratiqué le calcul de complexité et l'optimisation d'algorithmes
Concernant la différence entre langages compilés et interprétés :
- Dans le cas d'un langage compilé, tu écris du code (selon une certaine grammaire en général compréhensible par les humains), puis tu compiles c'est à dire qu'un compilateur va transformer ton code en binaire (compréhensible pour ton processeur), puis tu exécutes c'est à dire que le binaire est directement chargé en mémoire et le processeur exécute la première instruction, puis les suivantes jusqu'à l'arrêt du programme.
- Dans le cas d'un langage interprété, tu écris du code (toujours selon une certaine grammaire en général compréhensible par les humains), puis tu lances un interpréteur qui va prendre la première instruction, l'interpréter, c'est à dire demander au processeur d'effectuer un certain nombre d'opérations, puis l'interpréteur va prendre l'instruction suivante, et ainsi de suite.
Évidemment c'est une vue simplifiée, toujours est-il que les langages interprétés sont généralement plus souples (ça dépend de l'interpréteur), les langages compilés plus performants (si le compilateur a bien fait son boulot).
Le Python est un bon langage, souvent utilisé pour les maths ou l'intelligence artificielle. Avec le C tu entres de plein pied dans les langages compilés et les compilateurs sont très stricts sur la grammaire. Pas droit à l'erreur de codage sinon ça ne compile pas. En plus un caractère mal placé et le programme fait facilement n'importe quoi.
Apprendre les bases de la programmation c'est un cursus de 3 années. Donc il va te falloir pas mal de temps pour les acquérir par toi même.
Je ne connais Code::Blocks que de réputation (et ça fait longtemps que je n'ai pas fait de C). Ce que je peux dire c'est qu'effectivement 2^10 000 dépasse largement la limite de types prédéfinis (même ullong). Donc tu va devoir utiliser des bibliothèques (packages) spécifiques. Il faut les importer dans ton code avant de pouvoir les utiliser.
Attention : les opérations sur les grands entiers sont plus lentes que sur les types prédéfinis. Mais bon, s'il n'y a pas le choix, alors il n'y a pas le choix.