|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Напишите прогу плз |
|
Напишите прогу плз
|
Новый участник Сообщения: 14 |
Народ мне тут для школы надо прогу написать, но совсем нет времени, я бы ее конечно и сам написал... Кароче надо чтобы разкладовало любое четное число на всевозможные простые числа и выводило это на икран. Обезательно с использованием функции, так же можно использовать циклы, операторы прерывания цыклов (break, continue (если это так пишется)): ) Если кто поможет буду очень благодарен, самому лень))
Добавлено: Блин вот я написал, а оно не работает. Чо такое? У меня вообще помойму паскаль глючный, где можно нормальный найти? Или вообще отправте на мыл плз Вот то что я написал: program only18; var n:integer; function only (a:integer):integer; var q,w,e:integer; begin if (a>2)and((a mod 2)=0) then * begin * *for q:=1 to (a-1) do * *e:=a-q; * * * begin * * * *for w:=1 to q do * * * *if ((q mod w)<0)or((q mod w)>0) then writeln (q) * * * end; * * * begin * * * *for w:=1 to e do * * * *if ((q mod w)<0)or((q mod w)>0) then writeln (e); * *end; *else writeln ('Clan only for ever! '); end; begin readln (n); only (n); readln end. Почуму не раьотает? [s]Исправлено: Only keeper, 15:35 14-04-2004[/s] |
|
Отправлено: 13:49, 14-04-2004 |
Пользователь Сообщения: 95
|
Профиль | Сайт | Отправить PM | Цитировать Вот на си, влом на паскаль переделывать - сам сделаешь (вроде работает):
#include<stdio.h> #include<conio.h> void main() { printf("\n Простые числа от 1 до 1000 :" ![]() int i,j,k; for(i=1; i<=1000; i++) { k=0; for(j=2; j<i; j++) if (int(i/j)==(float)i/(float)j) k++; if (k==0) printf(" %i",i); } getch(); } сам добавишь чтоб до нужного числа было - ломает делать считывание с клавиатуры... |
------- Отправлено: 20:40, 16-04-2004 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать suxxl
Во-первых, Вы неправильно поняли задачу. Прочитайте еще раз пост Only keeper'а. Во-вторых, Ваш пример содержит крайне неэффективный алгоритм и проверки. Крайне. Only keeper ![]() Цитата:
|
|
Отправлено: 12:16, 17-04-2004 | #3 |
Пользователь Сообщения: 95
|
Профиль | Сайт | Отправить PM | Цитировать 2 hasherfrog:
да, немного невнимательно прочитал... а насчет алгоритма - я это тут быстренько в форме написал и не компилил даже... а вообще ты прав, самому нужно думать, а не других просить ... |
------- Отправлено: 14:51, 17-04-2004 | #4 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Как понимать: "раскладовало на всевозможнае простые числа", может на простые множители или...
|
|
Отправлено: 21:49, 17-04-2004 | #5 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Есть у меня подозрение, что Only keeper сам некорректно привел условия задачи. Что-то мне подсказывает, что надо разложить четное число на два простых числа. Потому что если не на два, то вариантов - огромное количество. Например 4 = 1 +1 + 1 + 1, 2+ 1 + 1, 3 + 1, 2 + 2. А 9998?
Кстати, почему в условиях "четное" - потому что любое нечетное (кроме 1) - это четное + нечетное. Вообще, емнип, данная задача имеет отношение к алгоритму шифрования данных RSA. Короче, меня самого зацепило... #include <stdio.h> #include <math.h> int issample(unsigned int n) { if (!n) return 0; if (n <= 23) { static unsigned int firstten[] = { 1, 2, 3, 5, 7, 11, 13, 17, 19, 23 }; for (int j = 0; j < 10; j++) if (n == firstten[j]) return 1; return 0; } if (!(n&1)) return 0; unsigned int limit = (unsigned int)(sqrt((double)n)) + 1; for (unsigned int k = 3; k < limit; k+=2) if (!(n%k)) return 0; return 1; } int main(void) { for (unsigned int i = 2; i < 1000; i+=2) { for (unsigned int j = 1; j < i/2; j++) if (issample(j) && issample(i - j)) printf("%u = %u + %u\n", i, j, i - j); } return 0; |
Отправлено: 09:58, 19-04-2004 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Напишите сдесь что-нибудь. Часть 2 | Vadikan | Флейм | 5445 | Сегодня 21:12 | |
[решено] Напишите пожалуйста скрипт для avz супротив трояна | byaka | Лечение систем от вредоносных программ | 3 | 22-01-2010 12:55 | |
Напишите сдесь что-нибудь | Pavel88 | Тест-форум | 6730 | 12-10-2009 21:37 | |
Вы, напишите мне ответ ... | TarasBulba | Непонятные проблемы с Железом | 15 | 11-10-2002 19:20 |
|