Программирование на C / C++ / Лабораторные работы2 / УГАТУ АСОИ-136 пр-ние на ЯВУ лаб.№3 вар.№__Даша
.docУфимский государственный авиационный технический университет
Кафедра АСУ
Отчёт
по лабораторной работе №3
по дисциплине ”Программирование на ЯВУ”
вариант №__
Выполнил: студент группы АСОИ-136
Разбежкина Д. Проверил: доцент кафедры АПРиС
Фёдорова Н.И.
Уфа 2007
Тема: Обработка целых данных
Цель работы: Знакомство и получение навыков обработки целых данных
в языке С++.
Вариант №__.
Задание:
Для заданного натурального числа N найти все простые числа, сумма цифр которых равна N.
Решение:
Необходимо проверить числа в диапазоне от 1 до т.к.
число большее уже не будет удовлетворять условию задачи.
Для этого: 1) проверяем этот диапазон на наличие простых чисел.
2) если простые числа есть, то сумму цифр каждого из них проверяем на равенство с N.
Блок-схема
Текст программы на С++
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{ unsigned long x,N,y,s,fl,z,d,c,k,i,j;
int f;
clrscr();
cout<<"vvedite chislo N \n";
cout<<"N=";
cin>>N;
fl=1;s=0;
f=0;
c=1;d=0;
for(k=1;k<=N;k++)
{d=d+c;
c=c*10;}
cout<<"d="<<d<<endl;
for(i=1;i<=d;i=i+2)
{
for(j=3;j<i;j=j+2)
{
z=i%j;
if(z==0)
fl=0;
}
if(fl==1)
{
for(y=i;y>0;y/=10)
s+=y%10;
if(s==N)
{
cout<<"chislo "<<i<<endl;
f=1;
}
}
fl=1;s=0;
}
if(f==0)
cout<<"net tekih chusel"<<endl;
cout<<"conec";
getch();
}
Проверка:
N=4;
Результат: 13, 31, 103,211,1021;
N=5;
Результат: 5, 23, 41, 113, 131, 311, 401, 1013, 1031, 1103, 1301, 2003, 2111, 3011, 4001, 10103, 10211, 10301, 11003.