Как сгенерировать число, в котором ровно семь делителей? - PullRequest
3 голосов
/ 13 марта 2011

Для выполнения домашнего задания мне нужна логика, чтобы найти последовательность чисел от 1 до 1000, которые имеют ровно семь делителей.

(В идеале код можно легко изменить для генерации простых чисел.)

Ответы [ 4 ]

9 голосов
/ 13 марта 2011

Возьмите простое число p. Рассчитайте p^6. Его единственными делителями будут: 1, p, p^2, p^3, ..., p^6.

7 голосов
/ 13 марта 2011

Число с факторизацией

n = product(p_i ^ k_i)

будет иметь

d = product(k_i + 1)

делителей (см. функция делителей в Википедии ).Это показывает, что n может иметь только один простой фактор, и этот главный фактор должен быть повышен до степени 6. Поэтому возьмем шестую степень произвольного простого числа.

2 голосов
/ 13 марта 2011

Логика заключалась бы в том, что число было бы как идеальным квадратным, так и совершенным кубом.

Вы должны знать, что число, которое имеет простой множитель, имеет вид N = N1 ^ a *N 2 ^ б;Где N1 и N2 являются простыми числами, имеет * b факторы или делители.

Таким образом, для 7 факторов число должно иметь вид N = a ^ 6, где a - простое число.

длянапример, 2 ^ 6 (64), 3 ^ 6 (729).

РЕДАКТИРОВАТЬ: С этой логикой было бы довольно легко генерировать числа быстро. Вы можете легко генерировать идеальные квадраты и совершенныекуб <1000. И проверьте оба списка на общие номера. </p>

1 голос
/ 13 марта 2011

Вам нужен цикл (для цикла) из for n = 1 to 1000, а внутри этого цикла - еще один цикл for m = 1 to n внутри этого цикла, если n/m = integer (no remainder) и увеличивается ли счетчик div. В конце второго цикла проверьте, равен ли счетчик делений 7, записано ли число на экране.

РЕДАКТИРОВАТЬ: для простых чисел счетчик div должен быть 2!

...