tienes 2 caminos, usar matemática de precisión arbitraria o usar matemáticas... si es un trabajo de la uni, dudo que te permitan usar la primera opción...
para la primera un post que hice alguna vez, te puede ayudar, con esta librería pude calcular pi a 11mil digitos, pero puede servir para cualquier cosa
https://foro.elhacker.net/programacion_cc/calculo_de_pi_en_alta_precision_aporte-t412338.0.html
usando matemáticas, es hacer una algoritmo tal que puedas procesar el numero sin cargarlo...
es decir, por ejemplo...
tienes 9922121546975235412361002225 que en C/C++ no lo vas a poder cargar porque tiene más de 64 bits... para saber si un numero es multiplo, lo que haces es divirdirlo... te explico un poco como se hace la división para que veas que lo puedes hacer sin cargar el numero completo, esto debes ya haberlo estudidado antes en la primaria, pero como no se si lo conoces, igual lo desgloso paso a paso...
como el resultado final (cociente) no nos importa, sino solo el resto, no lo arrastraremos
9922121546975235412361002225 / 11
set:
dividendo = 0
resto = 0
divisor = 11
resultado = 0
---
paso 0: tomas el primer numero, si es menor que el divisor tomas uno más y repites hasta tener mayor que el divisor
---
paso 1: divides como enteros, sacas el resto y lo guardas
---
paso 2: multiplicas el resultado actual por el divisor y se lo restas al dividendo, luego tomas el siguiente digito del numero a dividir, multiplicas el dividendo resultante por 10 y le sumas el valor extraido, si el numero obtenido es menor que el divisor, multiplicas el resultado por 10, multiplicas el dividendo por 10 y repites este paso
---
paso 3:
repetir desde el paso 1 y hasta agotar los digitos, si el resto es diferente de 0, entonces no es divisible
y como sería
set:
char* procesar = 9922121546975235412361002225
entero dividendo = 0
entero resto = 0
entero divisor = 11
entero resultado = 0
paso 0:
dividendo = 9
procesar = 922121546975235412361002225
dividendo < dividor? si
dividendo = 99
procesar = 22121546975235412361002225
paso 1:
resto = dividendo % divisor ->0
resultado = dividendo / divisor ->9
paso 2:
dividendo = dividendo - resultado * divisor ->0
dividendo = dividendo * 10 + 2 -> 2
procesar = 2121546975235412361002225
dividendo < divisor? si
dividendo = dividendo * 10 + 2 -> 22
procesar = 121546975235412361002225
paso 3
procesar contiene numeros? si
ir al paso 1
....... varias operaciones despues
paso 3
procesar contiene numeros? no
resto = 1
resto == 0? no
imprimir "no es multiplo"