Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Напишите прогу плз

Ответить
Настройки темы
Напишите прогу плз

Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Народ мне тут для школы надо прогу написать, но совсем нет времени, я бы ее конечно и сам написал... Кароче надо чтобы разкладовало любое четное число на всевозможные простые числа и выводило это на икран. Обезательно с использованием функции, так же можно использовать циклы, операторы прерывания цыклов (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
Благодарности: 0

Профиль | Сайт | Отправить 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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


suxxl
Во-первых, Вы неправильно поняли задачу. Прочитайте еще раз пост  Only keeper'а. Во-вторых, Ваш пример содержит крайне неэффективный алгоритм и проверки. Крайне.

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

Отправлено: 12:16, 17-04-2004 | #3


Пользователь


Сообщения: 95
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


2 hasherfrog:
да, немного невнимательно прочитал...
а насчет алгоритма - я это тут быстренько в форме написал и не компилил даже...
а вообще ты прав, самому нужно думать, а не других просить ...

-------
Вся наша жизнь - игра.... вот только б не повисла...


Отправлено: 14:51, 17-04-2004 | #4


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Как понимать: "раскладовало на всевозможнае простые числа", может на простые множители или...

Отправлено: 21:49, 17-04-2004 | #5


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить 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;
Хотя думал я над алгоритмом (и вообще над задачей) долго, сам код написан минут за 20, так что ошибки могут быть...

Отправлено: 09:58, 19-04-2004 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Напишите прогу плз

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Напишите сдесь что-нибудь. Часть 2 Vadikan Флейм 5444 18-07-2025 10:39
[решено] Напишите пожалуйста скрипт для avz супротив трояна byaka Лечение систем от вредоносных программ 3 22-01-2010 12:55
Напишите сдесь что-нибудь Pavel88 Тест-форум 6730 12-10-2009 21:37
Вы, напишите мне ответ ... TarasBulba Непонятные проблемы с Железом 15 11-10-2002 19:20




 
Переход