2016-08-24 4 views
0

Я новичок в программировании и переполнении блогов в блогах, поэтому, надеюсь, я правильно соблюдаю «do's and dont's».Программирование VB. Целочисленный массив и простые числа

Мне задали задание на задание, в котором мне было предложено хранить 5 целых чисел в массиве и определить, являются ли они простым числом или нет.

Вопросы у меня следующие:

  1. Как хранить их в целочисленный массив?

  2. Как сделать мою программу делением каждого входа на каждое число меньше входного?

Код я написал до сих пор это:

Sub Main()

Dim a, b, c, d, e As Integer 
    Dim isPrime As Boolean = True 

    Console.WriteLine("Please enter a value for a: ") 
    a = Console.ReadLine 
    Console.WriteLine("Please enter a value for b: ") 
    b = Console.ReadLine 
    Console.WriteLine("Please enter a value for c: ") 
    c = Console.ReadLine 
    Console.WriteLine("Please enter a value for d: ") 
    d = Console.ReadLine 
    Console.WriteLine("Please enter a value for e: ") 
    e = Console.ReadLine 



    If a Mod (a - 1) > 0 Or a = 2 And a <> 0 Then 
     Console.WriteLine("a is a prime number") 
    ElseIf a Mod (a - 1) = 0 Then 
     Console.WriteLine("a is not a prime number") 
    End If 

    If b Mod (b - 1) > 0 Or b = 2 And b <> 0 Then 
     Console.WriteLine("b is a prime number") 
    ElseIf b Mod (b - 1) = 0 Then 
     Console.WriteLine("b is not a prime number") 
    End If 

    If c Mod (c - 1) > 0 Or c = 2 And c <> 0 Then 
     Console.WriteLine("c is a prime number") 
    ElseIf c Mod (c - 1) = 0 Then 
     Console.WriteLine("c is not a prime number") 
    End If 

    If d Mod (d - 1) > 0 Or d = 2 And d <> 0 Then 
     Console.WriteLine("d is a prime number") 
    ElseIf d Mod (d - 1) = 0 Then 
     Console.WriteLine("d is not a prime number") 
    End If 

    If e Mod (e - 1) > 0 Or e = 2 And e <> 0 Then 
     Console.WriteLine("e is a prime number") 
    ElseIf e Mod (e - 1) = 0 Then 
     Console.WriteLine("e is not a prime number") 
    End If 

    Console.ReadKey() 
End Sub 

Обучение всех этих вещей с предшествующими уровнем знаний, представленными сделали вещи трудно, поэтому любой помощи был бы очень признателен!

ответ

0
Dim a, b, c, d, e As Integer 

Console.WriteLine("Please enter a value for a: ") 
a = Console.ReadLine 
Console.WriteLine("Please enter a value for b: ") 
b = Console.ReadLine 
Console.WriteLine("Please enter a value for c: ") 
c = Console.ReadLine 
Console.WriteLine("Please enter a value for d: ") 
d = Console.ReadLine 
Console.WriteLine("Please enter a value for e: ") 
e = Console.ReadLine 

Dim intary() As Integer = {CInt(a), CInt(b), CInt(c), CInt(d), CInt(e)} 
For Each number As Integer In intary 
    Dim prime As Boolean = True 
    For x As Integer = 2 To number - 1 
     If number Mod x = 0 Then 
      prime = False 
      Exit For 
     End If 
    Next 
    If prime Then 
     Console.WriteLine(number.ToString & " IS a prime number") 
    Else 
     Console.WriteLine(number.ToString & " IS NOT a prime number") 
    End If 
Next 

Целый массив создается в первой строке. Тогда, концепция состоит в том, что вы хотите перебирать каждый элемент в массиве и запускать на нем тест простых чисел. Итак, у нас есть цикл for, который будет запускать наш тест простых чисел для каждого числа в массиве. Для каждого из чисел мы делим тестовый номер на каждое число от двух до полного номера теста и проверяем остатки мод. Если любой из них возвращает ноль, кроме самого числа, то мы не имеем простого числа. В показанном примере я просто печатаю простую строку, указывающую, прошел или не прошел каждый номер или не прошел тест ... надеюсь, что это поможет и удачи в изучении вашего нового языка!

Обратите внимание, что вы можете уменьшить размер массива и добавить каждый новый номер, поскольку он извлекается от пользователя, но вам нужно будет каждый раз изменять или изменять размер массива. В примере, который я написал, используется только входная логика, которую вы уже использовали. Если задание явно не запрашивало массив, вы могли бы написать гораздо более чистое решение, если бы вам пришлось использовать список.

+0

Вы, сэр, святые. Я полностью понял это сейчас! –

+0

Я собираюсь вернуться к работе, поэтому когда-нибудь я смогу заплатить за это! –

+0

Я рад, что смог помочь! Если у вас нет каких-либо второстепенных вопросов по этой теме, рекомендуется отметить это как ответ. Это означает, что сообщение содержит сообщение, содержащее принятое решение для других пользователей StackOverflow, а также стреляет на пару точек по-моему;) – soohoonigan

0

Основным ответом на этот вопрос является принятие пользователем входных данных и запуск мод на каждом из этих номеров между 2 и пользователем.

Для людей, которые начинаются как я, мой совет заключается в том, что вы не отличаетесь от основной идеи, и все это в конечном итоге будет иметь смысл!

Смежные вопросы