середа, 23 березня 2016 р.

Розклад числа на прості множники

Розклад числа на прості множники. Вивід кількості множників, самих множників та їх степенів.


#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{long long a;
 int p[21], q[21]; long i,j,k,m;
 cin>>a;
 j=2; m=0;
 do
 {k=0;
  while(a%j==0)
       {a=a/j;++k;}
  if(k!=0)
     {++m;p[m]=j;q[m]=k;}
  if (j>2) 
       j+=2;
    else
       j=3;
  }
  while(a!=1);
  cout<<m<<endl;
  for(i=1;i<=m;i++)
  cout<<p[i]<<" "<<q[i]<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

Зчитування з файлу даних_ІІ

Знаходження максимального числа. Дані знаходяться у зовнішньому файлі даних. Кількість чисел невідома.

#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>

int main()
{ifstream fin ("input.txt"); 
 ofstream outf("output.txt");
 double a;   double max;
 fin>>max;  while(fin>>a) 
 {if(a>max) max=a;}

 outf<<fixed<<setprecision(2)<<max<<endl;;
      fin.close();outf.close();
      return 0;
}

Зчитування даних з файлу_I

Знаходження максимального числа. Дані знаходяться у зовнішньому файлі даних. Кількість чисел невідома.

#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>

int main()
{ifstream fin ("input.txt"); ofstream outf("output.txt");
 double a;   double max;
 fin>>max;
 while(!fin.eof()) 
 {fin>>a; if(a>max) max=a;}

 outf<<fixed<<setprecision(2)<<max<<endl;;
      fin.close();outf.close();
      return 0;
}

вівторок, 22 березня 2016 р.

Вивід двовимірного масиву

Вивід двовимірного масиву у вигляді матриці (без останнього пробілу в рядку)

int main()
{int a[4][4]={1,3,4,1,
              0,8,4,2,
              0,1,4,3,
              1,2,3,1};
int i,j;
for(i=0;i<4;i++)
 {cout<<a[i][0];
  for (j=1;j<4;j++) cout<<" "<<a[i][j];
  cout<<endl;
 }
return 0;}

Пошук найбільшого в масиві

Знаходження найбільшого елемента масиву та збереження його індексу

# include <iostream.h>
int main()
{int a[10]={7,4,5,10,12,4,1,3,15,1};
int i,max,n;
  max=a[0];n=0;
for (i=1;i<10;i++)
  if(a[i]>max) {n=i;max=a[i];}
cout<<max<<endl<<n;
return 0;}

Сортування методом бульбашки

Сортування масиву з 5-ти елементів методом бульбашки

# include <iostream.h>
int main()
{int a[5]={10,7,5,12,4},i,x;bool f;
do
{ f=0;
  for(i=0;i<4;i++)
  if(a[i]>a[i+1])
    {x=a[i];a[i]=a[i+1];a[i+1]=x;f=1;}
}
while (f);
return 0;}

Площа багатокутника

Площа багатокутника заданого координатами вершин


int main()
{int x[1001],y[1001],n,i;
double s=0; long long s1=0,v;
cin>>n;
for (i=0;i<n;i++) cin>>x[i]>>y[i];
x[n]=x[0];y[n]=y[0];
for(i=0;i<n;i++)
{s1+=(x[i]+x[i+1])*(y[i]-y[i+1]);}
s=0.5*abs(s1);
printf("%.3f\n",s)
return 0;}

Найбільший спільний дільник

Найбільший спільний дільник двох чисел(функція)

long long nsd (long long a,long long b)
{long long d,d1,d2,ns;
 d=a; d1=b; d2=d%d1;
 while(d2!=0)
   {d=d1;d1=d2;d2=d%d1;}
 ns=d1;
 return ns;}

Решето Ератосфена (прості числа)

Формування масиву простих чисел від 2 до n.


#include <iostream>
#include <math.h>
using namespace std;

int main(int argc, char *argv[])
{int s,k,m,n,j,r; bool b;
cin>>n;
if( n<=200) 
 r=(int)(1.6*n/log(n))+1;
  else
 r=(int)(n/(log(n)-2))+1;
 int pr[r];
 pr[0]=2;pr[1]=3; j=2;m=3;
 do
 {m+=2;b=1;k=1;s=(int)(sqrt(m)+0.1);
   while(b && pr[k]<=s)
   if(m%pr[k]==0)
     b=0;
    else
    k++;
  if(b){ pr[j]=m;j++;}   
 }
 while(m<=n-2);
 int i;
 for(i=0;i<j;i++) cout<<pr[i]<<" ";
 cout<<endl;
     system("PAUSE");
    return EXIT_SUCCESS;
}