Patrice T
Научитесь правильно отступать ваш код и псевдокод, это покажет его структуру, и это поможет чтению и пониманию. Это также помогает выявлять структурные ошибки.
Prompt for input
X = 0
prime_amount = 0
prime_sum = 0
DOWHILE X < input
Prompt for prime_number
Y = 2
Prime = TRUE
IF prime_number = 1 THEN
Prima = FALSE
ENDIF
DOWHILE Y <= prime_number AND Prime = TRUE
IF prime_number Mod Y = 0 THEN
Prime = FALSE
ENDIF
Y = Y + 1
ENDDO
IF Prime = TRUE THEN
prime_amount = prime_amount + 1
prime_sum = prime_sum + prime_number
ENDIF
ENDDO
Output "Amount of prime numbers" + prime_amount
Output "Total sum of prime numbers" + prime_sum
END
Профессиональные редакторы программистов имеют эту функцию и другие, такие как сопоставление скобок и подсветка синтаксиса.
Блокнот++ Главная Страница[
^]
личные[
^]
-----
Советы:
- инициализируйте счетчик циклов как можно ближе к циклу, это поможет считыванию
Prompt for input
X = 0
prime_amount = 0
prime_sum = 0
DOWHILE X < input
Prompt for prime_number
Y = 2
Prime = TRUE
IF prime_number = 1 THEN
Prima = FALSE
ENDIF
Y = 2
DOWHILE Y <= prime_number AND Prime = TRUE
IF prime_number Mod Y = 0 THEN
Prime = FALSE
ENDIF
Y = Y + 1
ENDDO
IF Prime = TRUE THEN
prime_amount = prime_amount + 1
prime_sum = prime_sum + prime_number
ENDIF
ENDDO
Output "Amount of prime numbers" + prime_amount
Output "Total sum of prime numbers" + prime_sum
END
- Ваш алгоритм не будет работать из-за '=' Здесь
DOWHILE Y <= prime_number AND Prime = TRUE
Это '=' здесь сделает
y=prime_number
на последнем цикле, и таким образом
y
будет делителем числа
prime_number
.
- Ваш алгоритм-это очень грубая сила, перебор. Подумайте об этом, какие делители вам нужно проверить, чтобы узнать, является ли 97 простым числом или нет?