Страница: 1 | 
		
		
			
	
		 
		
			
  
    |   | 
    
Вопрос: Зад. из районной олимп. по информ. 2009 (10е кл.)
     | 
    
Добавлено: 16.11.09 02:06
     | 
      | 
  
		
			
			  
    
      
Автор вопроса:   
       | 
    
    
      
Давненько я забросил своё VB, а тут вот пришлось вспоминать функции, синтаксис его и как меняется раскладка на компьютерах без Punto Switcher'а на олимпиадке. Так вот, рапортую. Выбор языков не удивил: Ни Java вам, ни C# - или VB (v.5, прослезился), или Turbo Pascal (прослезился++). Дано 6 банальноватых задач, решение которых, в основном, состоит в умении составлять циклы. Теперь, когда, видимо благодаря и вашим данным мне в своё время конструктивным ответам на мои малоразумные вопросы, занято первое место совместно с другим парнем, можно говорить, что не оказался удивлён ничем, кроме последней, наиболее лакомой по баллам, задачи. Возьму на себя труд привести подробнейший текст задачи F "Тест профессора".
 
(именно буква 'ф' а не 'ц' в последнем слове)
 
 
Имя входного файла: input.txt
 
Имя выходного файла: output.txt
 
Максимальное время работы на одном тесте: 2 секунды
 
Максимальный объём используемой памяти: 64 мегабайта
 
 
Для того чтобы проверить, как его студенты умеют считать, профессор каждый год задаёт им на дом одну и ту же задачу - для заданного натурального числа a найти минимальное натуральное число n такое, что n в квадрате делится на a. От года к году и от студенту к студенту меняется только число a.
 
Требуется помочь будущим поколениям и составить программу, решающую задачу профессора.
 
Формат входных данных
 
Входной файл input.txt содержит единственное целое число a (1 <= a <= 10^9).
 
Формат выходных данных
 
Выходной файл output.txt должен содержать единственное число n.
 
Пример входного и выходного файлов
 
input.txt	output.txt
 
8		4
 
13		13
 
16		4
 
 
 
Ну, ессно, первое, что пришло в голову:
 
 
Private Sub Form_Load()
 
fileNum = FreeFile()
 
Open App.Path + "\input.txt" For Input As fileNum
 
Input #fileNum, a
 
Close fileNum
 
 
n = 1
 
a = Val(a)
 
While Not n * n Mod a = 0
 
n = n + 1
 
Wend
 
 
Open App.Path + "\output.txt" For Output As fileNum
 
Print #fileNum, n
 
Close fileNum
 
 
End
 
End Sub
 
 
 
Во-первых, зная некоторую часть посетителей сайта, надеюсь, что кому-то кажется, что я листаю книгу по одному листу с самого начала в поисках нужной главы, вместо того чтобы воспользоваться содержанием. А во-вторых, обратите внимание на это: 1 <= a <= 10^9. Разумеется, при a = 10^9 произойдёт Overflow. Даже на Currency при n=46341, как я смотрел уже дома.
 
 
Надеюсь, будет сказано что-то интересное.
Ответить
        | 
    
  
		
			
		
		
			
		
	  
	  
	  
	  
	  
	  
	  
	  
	  
	  
	  Страница: 1 | 
 
		
			Поиск по форуму