Как мне сделать так, чтобы при выполнении условия i % a == 0, i повышалось на 1 именно в range.
Грубо говоря, когда условие выполняется, необходимо чтобы "i" в range шёл дальше
for i in range (1,100000000):
for a in range (2,i):
if i % a == 0:
pass
Значить так. Четные числа - всегда - составные. Поэтому их можно даже не проверять и сразу прыгать по нечетным 3,5,7....
Внутренний цикл не надо делать от 2 до i. Делитель 2 мы уже исключили выше. Поэтому начинаем с тройки и гоним не до n а до квадратного корня из n. Или наоборот возводим в квадрат. Тут надо понять что для Python быстрее будет. Я на С++ делал там по другому.
Для более глубокой оптимизации все найденные простые - пишутся в array и участвуют во внутреннем цикле как делители. Это еще быстрее.