#importing modules
import math
from __future__ import division
#Variable declaration
rho=9.6*10**2; #density of Na(kg/m**3)
aw=23; #atomic weight
n=2; #number of atoms in a unit cell
N=6.022*10**26;
#Calculation
a3=n*aw/(N*rho);
a=a3**(1/3); #lattice constant of Na(m)
#Result
print "lattice constant of Na is",round(a*10**10,1),"angstrom"
#importing modules
import math
from __future__ import division
#Variable declaration
rho=4*10**3; #density of CsCl(kg/m**3)
aw1=132.9; #atomic weight of Cs
aw2=35.5; #atomic weight of Cl
a=4.12*10**-10; #lattice constant(m)
n=1; #number of atoms in a unit cell
#Calculation
m=rho*(a**3); #mass of CsCl unit cell(kg)
N=n*(aw1+aw2)/m; #avagadro constant(per kg mole)
#Result
print "avagadro constant is",round(N/10**26,4),"*10**26 per kg mole"
#importing modules
import math
from __future__ import division
#Variable declaration
a=4.12*10**-10; #lattice constant(m)
h1=1;
k1=1;
l1=1; #for (111) plane
h2=1;
k2=1;
l2=2; #for (112) plane
h3=1;
k3=2;
l3=3; #for (123) plane
#Calculation
d111=a/math.sqrt(h1**2+k1**2+l1**2); #lattice spacing for plane (111)(m)
d112=a/math.sqrt(h2**2+k2**2+l2**2); #lattice spacing for plane (112)(m)
d123=a/math.sqrt(h3**2+k3**2+l3**2); #lattice spacing for plane (123)(m)
#Result
print "lattice spacing for plane (111) is",round(d111*10**10,4),"*10**-10 m"
print "lattice spacing for plane (112) is",round(d112*10**10,3),"*10**-10 m"
print "lattice spacing for plane (123) is",round(d123*10**10,4),"*10**-10 m"
#importing modules
import math
from __future__ import division
#Variable declaration
a=1; #assume
h1=1;
k1=0;
l1=0; #for (100) plane
h2=1;
k2=1;
l2=0; #for (110) plane
h3=1;
k3=1;
l3=1; #for (111) plane
#Calculation
d100=a/math.sqrt(h1**2+k1**2+l1**2); #lattice spacing for plane (100)
d110=a/math.sqrt(h2**2+k2**2+l2**2); #lattice spacing for plane (110)
d111=a/math.sqrt(h3**2+k3**2+l3**2); #lattice spacing for plane (111)
#Result
print "ratio of lattice spacing is d100:d110:d111=",d100,":",round(d110,2),":",round(d111,2)