J'ai un entier de 15 chiffres à déclarer,le type long est-il approprié?

J'ai une erreur "The literal 1000000000000000 of type int is out of range" lorsque je fais la manip suivante (en simplifier):

code:

long a;
int b = 5;

a = b * 1000000000000000;

Le type long n'est pas approprié ? que veut dire le message d'erreur?

merci