Не уверен, какой язык вы используете, но вот основная идея:
dim myCount as integer = 1
dim N as integer = 10000000000 '10,000,000,000
For i as integer = 2 to N
If N mod i = 0 Then
myCount += 1
End If
Next i
Примечания:
- Мод дает вам остаток от деления.Так, например:
- 10 mod 1 = 0 (потому что 1 входит в 10 10 раз точно)
- 10 mod 2 = 0 (...
- 10 mod 3= 1 (потому что 3 входит в 10 3 раза, с остатком 1)
- 10 mod 4 = 2 (потому что 4 идет в 10 2 раза, с остатком 2)
Вы хотите считать только результаты, где N mod i = 0, потому что это единственные случаи, когда я перехожу к N без остатка, что Я думаю - это то, что ваш учитель, вероятно, имеет в виду, когда онискажем 'делитель' - без остатка.
Объявления переменных (dim ...) и цикл For могут быть написаны немного по-разному на любом языке, который вы используете. Код выше VB. Но если вызагляните в свой книжный указатель, вы, вероятно, найдете версию этих двух общих функций на вашем языке.
РЕДАКТИРОВАТЬ
ОК - в этом случае просто добавьте еще один FORпетля, следующим образом:
dim myCount as integer = 1
dim N as integer = 10000000000 '10,000,000,000
For i as integer = 1 to N
For j as integer = 2 to i
If i mod j = 0 Then
myCount += 1
End If
Next j
Next i