Мера истекшего времени для выполнения кода - PullRequest
0 голосов
/ 21 февраля 2019

Мне нужна программа, которая вычисляет, сколько времени требуется, чтобы определить, является ли число простым числом.

Я пытался измерить это время, но, похоже, функция не выдает требуемое время.

Вот мой код.Что мне нужно сделать, чтобы это исправить?

Function primeNumber()
    Dim Start_Time As DateTime
    Dim Stop_Time As DateTime
    Dim Elapsed_Time As TimeSpan
    Start_Time = Now
    Dim Check As Integer
    Check = 1
    Dim num As Long
    Console.WriteLine("Please enter the number you would like to determine if it is a Prime Number or not")
    num = Long.Parse(Console.ReadLine())
    If (num > 0) Then
        For i = 2 To (num - 1)
            If num Mod i = 0 Then
                Check = 0
                Exit For
            End If
        Next
        If Check = 0 Then
            Console.WriteLine(num & " is not a Prime Number!")
        Else
            Console.WriteLine(num & " is a Prime Number!")
        End If
    Else
        Console.WriteLine("Invalid Number!")
    End If
    Stop_Time = Now
    Elapsed_Time = Stop_Time.Subtract(Start_Time)
    Return Elapsed_Time.TotalSeconds.ToString("0.000000")
End Function

1 Ответ

0 голосов
/ 21 февраля 2019

Что вы подразумеваете под функцией, которая не дает времени?Вы имеете в виду, что он дает неправильный результат или не дает никакого результата?

В своем коде вы измеряете время выполнения функции (включая время, необходимое для ввода пользовательского ввода).Если вы хотите измерять только вычисления, вам нужно переместить следующую строку

Start_Time = Now

после

num = Long.Parse(Console.ReadLine())

Чтобы увидеть результат, используйте:

Dim time = primeNumber()
Console.WriteLine(time)
...