How to check if a number is palindromic prime cyclops in VB.NET

1 Answer

0 votes
' A number with odd number of digits and zero in the center is cyclops number

Imports System

Public Class Program
    Private Shared Function isCyclopsNumber(ByVal n As Integer) As Boolean
        If n = 0 Then
            Return True
        End If

        Dim m As Integer = n Mod 10
        Dim count As Integer = 0

        While m <> 0
            count = count + 1
         	n = n \ 10
            m = n Mod 10
        End While
    
        n = n \ 10

        m = n Mod 10

        While m <> 0
            count = count - 1
			n = n \ 10
            m = n Mod 10
        End While

        Return n = 0 AndAlso count = 0
    End Function

    Private Shared Function isPrime(ByVal n As Integer) As Boolean
        If n < 2 OrElse (n Mod 2 = 0 AndAlso n <> 2) Then
            Return False
        End If

        Dim count As Integer = CInt(Math.Floor(Math.Sqrt(n)))

        For i As Integer = 3 To count Step 2
            If n Mod i = 0 Then
                Return False
            End If
        Next

        Return True
    End Function

    Private Shared Function isPalindrome(ByVal n As Integer) As Boolean
        Dim reverse As Integer = 0, temp As Integer = n

        While temp <> 0
            Dim remainder As Integer = temp Mod 10
            reverse = (reverse * 10) + remainder
            temp = temp / 10
        End While

        Return n = reverse
    End Function

    Public Shared Sub Main(ByVal args As String())
        Dim n As Integer = 209
	
        Console.WriteLine(If(isCyclopsNumber(n) AndAlso isPrime(n) AndAlso isPalindrome(n), "yes", "no"))
        
		n = 31013
        Console.WriteLine((If(isCyclopsNumber(n) AndAlso isPrime(n) AndAlso isPalindrome(n), "yes", "no")))
    End Sub
End Class
	
	
	
	
' run:
'
' no
' yes
'

 



answered Apr 10, 2023 by avibootz

Related questions

1 answer 98 views
1 answer 103 views
1 answer 93 views
1 answer 94 views
1 answer 123 views
1 answer 75 views
...