Люди, помагите написать такую прогу: есть ряд чисел от 1 до n (n<=1000) надо разбить этот ряд на максимально возможное кол - во пар, причем сумма чисел в паре должна быть нечетным числом.
P.S. Подскажите хотябы идею.
Зарание thanks.
Bzzzik писал(а):2 - Сумма чисел в паре должна быть простым числом, а не нечетным!!!
Bzzzik писал(а):Люди, помагите написать такую прогу: есть ряд чисел от 1 до n (n<=1000) надо разбить этот ряд на максимально возможное кол - во пар , причем сумма чисел в паре должна быть нечетным числом.
P.S. Подскажите хотябы идею.
Зарание thanks.
corgi писал(а):простое число это будет всегда нечетное число(и еще 2)
а цикл надо делать до корня квадратного из n
Public Function IsSimple(ByVal n As Long) As Boolean
Dim i&, m&
IsSimple = True
If (n < 4) Then Exit Function
IsSimple = False
If (n Mod 2 = 0) Then Exit Function
m = Sqr(n)
For i = 3 To m Step 2
If (n Mod i = 0) Then
Exit Function
End If
Next
IsSimple = True
End Function
GoGosha писал(а):Bzzzik писал(а):Люди, помагите написать такую прогу: есть ряд чисел от 1 до n (n<=1000) надо разбить этот ряд на максимально возможное кол - во пар , причем сумма чисел в паре должна быть нечетным числом.
P.S. Подскажите хотябы идею.
Зарание thanks.
А тебе не кажется, что пар всегда будет n / 2
Алекс писал(а):GoGosha писал(а):Bzzzik писал(а):Люди, помагите написать такую прогу: есть ряд чисел от 1 до n (n<=1000) надо разбить этот ряд на максимально возможное кол - во пар , причем сумма чисел в паре должна быть нечетным числом.
P.S. Подскажите хотябы идею.
Зарание thanks.
А тебе не кажется, что пар всегда будет n / 2
Вот тебе 4 числа, попробуй разбей их на две пары: 2, 5, 82, 106.
Bzzzik писал(а):skiperski, судя по твоей прог-ме из ряда чисел от 1 до 27 отбрасываются числа 1 и 2, из которых можно было бы создать пару.
Может я чего-то недопонял?!
Public Function IsSimple(ByVal n As Long) As Boolean
Dim i&, m&
IsSimple = True
If (n < 4) Then Exit Function
IsSimple = False
If (n Mod 2 = 0) Then Exit Function
m = Sqr(n)
For i = 3 To m Step 2
If (n Mod i = 0) Then
Exit Function
End If
Next
IsSimple = True
End Function
GAGArin писал(а):Сразу видно програмистский подход к проблеме, но не стоит забывать и о математике.
Простое число большее 6 имеет вид 6n +/- 1.
Ну и еще 1,2,3
Сейчас этот форум просматривают: Google-бот, Majestic-12 [Bot], SemrushBot и гости: 14