18 / 18 / 15
Регистрация: 30.03.2011
Сообщений: 122
1

Найти все простые числа из интервала (1000, 9999), у которых сумма первой и второй цифры равна сумме третьей и четвертой цифры.

19.04.2012, 20:53. Показов 6642. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
Дали 6 заданий по практике, нужно выбрать одну из них и написать на С++ (Builder) и Pascal ABC. Я пробовал зделать одну из них (4 ниже), погуглил и нашёл некоторые наброски, но в целом не помогло. По-возможности, помогите плиз начинающему
  1. Все решения уравнения x^2+у^2=z^2 в натуральных числах называют пифагоровыми тройками. Пифагорову тройку чисел, не имеющих общего делителя, большего 1, будем называть несократимой. Известно, что тройка является несократимой тогда и только тогда, когда она с точностью до порядка первых двух чисел совпадает стройкой 2ху, x^2-у^2 , x^2+у^2 , где х, у (х > у) - взаимно простые натуральные числа разной четности. Получить тысячу несократимых пифагоровых троек.
  2. Найти четыре равновеликих прямоугольных треугольника, длины сторон которых выражены натуральными числами.
  3. Пусть окружность разделена на 144 равные дуги. Перенумеруем точки деления, обходя окружность дважды. При первом обходе ставятся номера от 1 до 144. При втором обходе нумерация точек продолжается: точка 1 получает номер 145, точка 2 – номер 146 и т.д. Построим хорду, соединяющую точки 1 и 2, и отправим ее в путешествие по кругу так, чтобы она соединяла последовательно точки 2 и 4, затем 3 и 6, 4 и 8, 5 и 10, …., 144 и 288. На этом последнем шаге хорда вырождается в точку, путешествие окончено, и на наш взгляд явственно воспринимается контур. Написать графическую программу, реализующую описанный алгоритм и с ее помощью определить вид построенной кривой.
  4. Найти все простые числа из интервала (1000, 9999), у которых сумма первой и второй цифры равна сумме третьей и четвертой цифры.
  5. Среди дробей вида х/у , где х, у - двузначные целые числа, найти наиболее близкую к числу √2=1,414213562373095048802…
  6. В романе n глав. Известны количества страниц в каждой из них. Требуется издать роман в К томах так, чтобы оббьем наибольшего тома был наименьшим из всех возможных. Делить главу между томами и изменять порядок глав нельзя. Определить оптимальный оббьем наибольшего тома в страницах.

Студент должен выбрать одну из представленных задач. Составить программу на двух языках – С++ и Pascal. В отчете представить описательную модель решения (описать логику решения задачи), листинг программы в двух вариантах и результат.


Нужно до 5-го мая зделать =( Заранее буду благодарен!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2012, 20:53
Ответы с готовыми решениями:

Найти простые числа, у которых сумма первой и второй цифры равна сумме третьей и четвертой
Задание 1. Найти все простые числа из интервала 1000-9999, у которых сумма первой и второй цифры...

Найти все простые числа от 1000 до 1999, в каждом из которых сумма первой и второй цифр в записи этого числа равна сумме третьей и четвертой.
Прошу помочь решить задачки!:(очень нужно (Билет №14) Найти все простые числа от 1000 до 1999, в...

Вывести на экран все положительные трехзначные числа, сумма первой и третьей цифры которых равна второй цифры
Вывести на экран все положительные трехзначные числа, сумма первой и третьей цифры которых равна...

Разработать метод, который на отрезке [1000,9999] возвращает массив всех составных чисел, сумма первой и второй цифр которых равна сумме третьей и че
Разработать метод, который на отрезке возвращает массив всех составных чисел, сумма первой и...

13
143 / 122 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
19.04.2012, 21:45 2
задача №4 набросал за 5 минут поэт некрасиво... хз что не получалось у тебя, код рабочий!!!

файл *.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    Memo1->Clear();
}
//---------------------------------------------------------------------------
int TForm1::isprime(int n)
{
    if(n==1) // 1 - не простое число
        return false;
    // перебираем возможные делители от 2 до sqrt(n)
    for(int d=2; d*d<=n; d++){
        // если разделилось нацело, то составное
        if(n%d==0)
            return false;
        }
    // если нет нетривиальных делителей, то простое
    return true;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    String Prostoe,Prostoe2;
    for(int i=1000; i<=9999;i++)
    {
        if(isprime(i)==true)
        {
            int symma1=0,symma2=0;
            Prostoe=IntToStr(i);
            for(int j=1;j<=4;j++)
            {
                Prostoe2=Prostoe[j];
                if(j<=2)symma1+=StrToInt(Prostoe2);
                if(j>=3)symma2+=StrToInt(Prostoe2);
            }
            if(symma1==symma2)Memo1->Lines->Add(Prostoe);
        }
    }
}
//---------------------------------------------------------------------------
файл *.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
    TButton *Button1;
    TMemo *Memo1;
    void __fastcall Button1Click(TObject *Sender);
private:    // User declarations
public:     // User declarations
    __fastcall TForm1(TComponent* Owner);
    int isprime(int n);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

на паскале
1
238 / 229 / 58
Регистрация: 27.10.2011
Сообщений: 249
19.04.2012, 22:06 3
Цитата Сообщение от Артур-11 Посмотреть сообщение
Найти все простые числа из интервала (1000, 9999), у которых сумма первой и второй цифры равна сумме третьей и четвертой цифры.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
bool isSimple(int in)
{
  for(int i = 2; i <= in / 2; i++)
    if(in % i == 0)
      return false;
  return true;
}
//---------------------------------------------------------------------------
bool mySelect(int in)
{
  int x[4];
  for(int i = 0, j = 1000; i < 4; i++, j /= 10)
    {
      x[i] = in / j;
      in -= x[i] * j;
    }
  if(x[0] + x[1] == x[2] + x[3])
    return true;
  return false;
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  for(int i = 1000; i < 10000; i++)
    if(isSimple(i))
      if(mySelect(i))
        Memo1->Lines->Add(IntToStr(i));;
}
//---------------------------------------------------------------------------
1
Эксперт С++
8482 / 6149 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.04.2012, 01:17 4
Как вариант можно использовать готовый список простых чисел...
0
18 / 18 / 15
Регистрация: 30.03.2011
Сообщений: 122
20.04.2012, 03:13  [ТС] 5
Скомпилировал на С++ и запустил, выбились цифры от 3 до 97 (вниз) через каждые две цифры, не то. Нужно, чтобы было от 1000 до 9999. Нашёл на Delphi, но мне надо на С++
На паскале я скачал файл, и ошибка(


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
program z43;
 
 uses crt;
 var b:array[1..1000] of longint;er:integer;
     i,j,fl,h,s1,s2,s3,s4:longint;
     ii:string;label met1,met2;
 begin
  clrscr;
   i:=1000;
   met1:while i<=9999 do
        begin
         for j:=2 to i-1 do
     if i mod j=0 then begin fl:=1;goto met2; end;
    met2:if fl=0 then begin
                       str(i,ii);
                       val(ii[1],s1,er);val(ii[3],s3,er);
                       val(ii[2],s2,er);val(ii[4],s4,er);
                       if s1+s2=s3+s4 then
                begin
                         inc(h);b[h]:=i;inc(i);goto met1;
                        end;
                      end;
         fl:=0;inc(i);
        end;
    for i:=1 to h do write(b[i],' ');
  readln;
 end.
В паскале после выполнения программы показывает ошибку:

»*Непредвиденное исключение EAccessViolation. Access violation at address 0076A0D8 in module 'PascalABC.exe'. Read of address 00000014. Программа завершена (z43.pas, строка 30)
Миниатюры
Найти все простые числа из интервала (1000, 9999), у которых сумма первой и второй цифры равна сумме третьей и четвертой цифры.  
0
143 / 122 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
20.04.2012, 12:45 6
Цитата Сообщение от Артур-11 Посмотреть сообщение
Скомпилировал на С++ и запустил, выбились цифры от 3 до 97 (вниз) через каждые две цифры, не то. Нужно, чтобы было от 1000 до 9999.
дал выше тебе полностью рабочий код твое дело было ток скомпилировать... да и то не было сделано!!!
выкладываю код проекта + exe файл... екзешник запустится прост так!!! а код сам разбирай...
Изображения
 
Вложения
Тип файла: rar 1000-9999.rar (364.6 Кб, 31 просмотров)
1
18 / 18 / 15
Регистрация: 30.03.2011
Сообщений: 122
20.04.2012, 23:59  [ТС] 7
QWIPQ, Спасибо, будем разбираться

Добавлено через 9 часов 26 минут
Блин, не могу врубиться, как зделать, чтобы начиналось с 1001 и до 9999 ?
0
143 / 122 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
21.04.2012, 10:36 8
Цитата Сообщение от Артур-11 Посмотреть сообщение
Блин, не могу врубиться, как зделать, чтобы начиналось с 1001 и до 9999 ?
если в моем коде то найди строчку:

C++
1
for(int i=1000; i<=9999;i++)
просто замени в нем число 1000 на 1001
0
18 / 18 / 15
Регистрация: 30.03.2011
Сообщений: 122
21.04.2012, 14:28  [ТС] 9
QWIPQ, я имею ввиду, что расчёт идёт не с 1000, а с 1423 и до 9467
0
1123 / 794 / 101
Регистрация: 01.02.2011
Сообщений: 1,880
Записей в блоге: 1
21.04.2012, 15:07 10
Артур-11, ты знаешь, что такое "простое число"?
0
18 / 18 / 15
Регистрация: 30.03.2011
Сообщений: 122
21.04.2012, 16:42  [ТС] 11
Помучался, пораздумывал, получилось, обрадовался
Зделал расчёт с 1001 до 9999 на Pascal ABC, но не все числа поместились туда. Пробовал с расширением окна Window, так ничего и не вышло. Я так понял пусть лучше будет с 1423

P.S. В техникуме не учили к сожалению компилированию С++ в один файл *.exe. Поискал в поисковиках, так и не понял как это зделать. Может подскажет кто нибудь как оно делается, или там программы надо какие-то?

P.P.S. Я не ищу лёгких путей

P.P.P.S. Надо было начинасть с что такое «простое число»
0
143 / 122 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
21.04.2012, 16:52 12
Артурио блин... измени предел от 1 до 9999, убери условие проверки на сумму и глянь ссылку
сопоставь... то что выводится и поймешь... что 1001 не простое чило а простое число первое от тысячи подходящее под твое услое является 1423...
кидаю тебе то как скомпилить просто exe файл чтоб не над было компилировать отдельно на др компах...
Вложения
Тип файла: txt Как без инсталляции.txt (967 байт, 13 просмотров)
0
Эксперт С++
8482 / 6149 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
21.04.2012, 18:36 13
Компиляция программы под С++ Builder, чтобы работала на других компьютерах

Если имеется ввиду что бы все(изображения,тексты итп) было в exe, то читать надо про подключение файла ресурсов
0
LK
21.04.2012, 18:44     Найти все простые числа из интервала (1000, 9999), у которых сумма первой и второй цифры равна сумме третьей и четвертой цифры.
  #14
 Комментарий модератора 
Правила
3.15. Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
Не стоит делать из темы свалку.
Тема закрыта.
0
21.04.2012, 18:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2012, 18:44
Помогаю со студенческими работами здесь

Найти все четырехзначные числа, у которых сумма первой и третьей цифр равны сумме второй и четвертой.
найти все четырехзначные числа, у которых сумма первой и третьей цифр равны сумме второй и...

Найти все трехзначные числа, вторая цифра которых равна сумме первой и третьей цифры
Конструкция Do.....Loop Пример способа решения, по которому мне надо решить( Private Sub...

Найти все трехзначные числа, вторая цифра которых равна сумме первой и третьей цифры
Добрый день, пользователи форума. Пожалуйста помогите с решением маленькой задачи. Задача: Найти...

Найти все трехзначные числа, вторая цифра которых равна сумме первой и третьей цифры
найти все трехзначные числа, вторая цифра которых равна сумме первой и третьей цифры


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru