Proszę o pomoc!

1. Napisz funkcję, która stwierdza, czy zadana jako parametr liczba całkowita jest liczbą pierwszą. Wartością

funkcji ma być jeden, jeśli liczba spełnia warunek oraz zero w przeciwnym wypadku.

2. Napisz funkcję, która wyznacza maksimum z dwóch zadanych liczb całkowitych. Wartością funkcji ma być

większa spośród liczb.

3. Napisz funkcję, która wyznacza pierwiastek całkowity z zadanej liczby. Zastosuj algorytm odejmowania

kolejnych liczb nieparzystych.

4. Napisz funkcję, która ma trzy parametry formalne a, b, c będące liczbami całkowitymi. Wartością funkcji

jest jeden, jeśli zadane liczby są liczbami pitagorejskimi oraz zero w przeciwnym wypadku. Liczby pitagorejskie

spełniają warunek: a*a+b*b=c*c.

5* Napisz funkcję, która wyznacza liczbę cyfr zadanej liczby całkowitej.

Wszystko w c++


Odpowiedź :

Odpowiedź:

#include <iostream>

#include <string>

using namespace std;

int zad1(int a){

   for(int i = 2; i < a; i++){

       if(a%i == 0) return 0;

   }

   return 1;

}

int zad2(int a, int b){

   if(a > b) return a;

   else return b;

}

void zad3(int x){

   int i, a = 0, r1 = 1, r2 = 2;

   for(i = 0; a <= x; i++){

       a += r1;

       r1 += r2;

   }

   i--;

   cout<<i<<", "<<i*i;

}

int zad4(int a, int b, int c){

   if(a*a + b*b == c*c) return 1;

   return 0;

}

int zad5(int a){

   int count = to_string(a).size();

   return count;

}

int zad5alternatywne(int a){

    int counter = 0;

   while(a>9){

       a /= 10;

       counter++;

   }

   return counter + 1;

}

int main()

{

   //cout<<zad1(X);

   //cout<<zad2(X, X);

   //zad3(X);

   //cout<<zad4(X, X, X);

   //cout<<zad5(X);

   //cout<<zad5alternatywne(X);

}

Wyjaśnienie:

W funkcji main w miejscu wywołania funkcji w miejscach "X" wstawiasz swoje liczby całkowite. Niestety nie wiem jaki zakres materiału Cię obowiązuje, dlatego też w zad5 użyłem funkcji konwertującej na stringa, bo tak po prostu jest szybciej i łatwej. Natomiast jeżeli chciałbyś to liczyć "na piechotę" stworzyłem funkcję zad5alternatywne, które teoretycznie powinno działać bez problemu :)