두 합 수 는 소수 이 고,그들의 최소 공 배 수 는 260 이 며,두 개의 수 를 구한다.
위층 에서 틀 렸 어 요.
20+13=33 은 소수 가 아니 야,건물 주가 말 한 조건 을 만족 시 키 지 못 해
그러나 나 는 VB 로 시 뮬 레이 션 을 해 보 았 지만,에이,건물 주의 수수 께 끼 를 계산 할 수 없 었 다.
그런데 진짜 이런 숫자 가 있 나 요?건물 주 조건 이 틀린 거 아니 야?
다음은 제 코드 입 니 다.
Option Base 1
Dim counter As Long
Dim a() As Long
Private Sub Command1_Click()
Dim x As Long
Dim y As Long
counter = 0
For var = 1 To 260
got var
Next var
Print counter
For x = 1 To counter
For y = 1 To counter
If a(x) > a(y) Then
If a(x) * a(y) / 260 = MOD_(a(x),a(y)) Then
Text1.Text = Text1.Text & a(x) & "—" & a(y) & Chr(13) & Chr(10)
If pan(a(x) + a(y)) Then
Text2.Text = Text2.Text & a(x) & "—" & a(y) & Chr(13) & Chr(10)
End If
End If
Else
If a(x) * a(y) / 260 = MOD_(a(y),a(x)) Then
Text1.Text = Text1.Text & a(x) & "—" & a(y) & Chr(13) & Chr(10)
If pan(a(x) + a(y)) Then
Text2.Text = Text2.Text & a(x) & "—" & a(y) & Chr(13) & Chr(10)
End If
End If
End If
Next y
Next x
End Sub
Function MOD_(ByVal x As Long,ByVal y As Long) As Long
Do
t = x Mod y
x = y
y = t
Loop While t 0
MOD_ = x
End Function
Private Sub got(ByVal var As Long)
flag = 0
For i = 2 To Int(Sqr(var))
If var Mod i = 0 Then
flag = flag + 1
End If
Next i
If flag > 0 Then
counter = counter + 1
ReDim Preserve a(counter)
a(counter) = var
End If
End Sub
Function pan(ByVal var As Long) As Boolean
flag = 0
For i = 2 To Int(Sqr(var))
If var Mod i = 0 Then
flag = flag + 1
End If
Next i
If flag = 0 Then
pan = True
Else
pan = False
End If
End Function
코드 는 틀 리 지 않 았 습 니 다.저 는 이미 여러 번 시험 해 보 았 습 니 다.
만약 내 가 틀 렸 다 면,번 거 로 우 시 겠 지만 건물 주가 답 을 알 았 을 때 나 에 게 알려 주세요.