Bài tập C++ hay lời giải về hàm

You might also like

You are on page 1of 3

Bài tập C++

HÀM
Bài 1: Tìm ước chung lớn nhất của 2 số a, b.

#include "iostream"
using namespace std;
int ucln(int, int);
int ucln(int x, int y){
if (x < y){
x = x + y;
y = x - y;
x = x - y;
}
while (y != 0){
int m = x%y;
x = y;
y = m;
}
return x;
}

int main()
{
int a, b;
cin >> a >> b;
cout << ucln(a, b);
return 0;
}
Bài 2: Tìm bội chung nhỏ nhất của 2 số a, b.

#include "iostream"
using namespace std;
int UCLN(int, int);
int UCLN(int x, int y) {
if (x < y) {
x = x + y;
y = x - y;
x = x - y;
}
while (y != 0) {
int m = x%y;
x = y;
y = m;
}
return x;
}
int BCNN(int, int);
int BCNN(int x, int y)
{
int a = (x*y) / UCLN(x, y);
return a;
}
int main()
{
int a, b;
cin >> a >> b;
cout << BCNN(a, b) << endl;
return 0;
}

Bài 3: Tìm các số chính phương và nguyên tố trong mảng

Dòng 1: Nhập vào N là số lượng phần tử của mảng


Dòng 2: Nhập N số nguyên (mỗi số cách 1 khoảng trắng)
VD:

Input Output

4 14
1234 23

#include <iostream>
#include <math.h>
using namespace std ;
int main() {
int sl , day , T ;
int K[100] ;
cin >> sl ;
for (int i = 0 ; i < sl ; i++) {
cin >> day ;
K[i] = day ;
}

// so CP
for (int i = 0 ; i < sl ; i++) {
T = sqrt(K[i]) ;
if (T*T == K[i])
cout << K[i] ;
}
cout << endl ;

// so NT
for (int i = 0 ; i < sl ; i++) {

bool flag = true ;


if (K[i] < 2)
flag = false ;

for (int j = 2 ; j <= sqrt(K[i]) ; j++) {


if (K[i] % j == 0) {
flag = false ;
break;
}
}
if(flag==true) cout << K[i] ;
}
return 0;
}

You might also like