Câu 1: Viết chương trình tính tổng nghịch đảo của n số tự nhiên đầu tiên
Code:
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    double sum = 0;
    cin>>n;
    for(int i = 1 ; i <= n ; i++)
        sum = sum + (double)1/i;
    cout<<sum;
    return 0;
}
Câu 2: Viết chương trình tìm và in ra các số không vượt quá 1000 và thỏa tính chất: số bằng tổng các ước số của nó
vd: 6 = 1 + 2 + 3
Code:
#include <bits/stdc++.h>
using namespace std;
int uocso(int n)
{
    int sum = 0;
    for(int i = 1 ; i < n ; i++)
    {
        if(n % i == 0)
            sum = sum + i;
    }
    return sum;
}
int main()
{
    int n;
    cin>>n;
    for(int i = 1 ; i <= n ; i++)
    {
        if(uocso(i) == i)
            cout<<i<<" ";
    }
    return 0;
}
Câu 3: Viết chương trình tìm các số nguyên tố trong khoảng [a,b] cho trước.
Code:
#include <bits/stdc++.h>
using namespace std;
bool check_songuyento(int n)
{
    int j = 0;
    for(int i = 1 ; i <= n ; i++)
    {
        if(n % i == 0)
            j++;
    }
    if(j == 2)
        return true;
    return false;
}
int main()
{
    int a,b;
    cin>>a>>b;
    for(int i = a ; i <= b ; i++)
    {
        if(check_songuyento(i) == 1)
            cout<<i<<" ";
    }
    return 0;
}
Câu 4 Viết chương tính căn bậc 2.
Code:
#include <bits/stdc++.h>
using namespace std;
int main()
{
    const double eps = pow(10,-6);
    int a;
    cin>>a;
    double z = a,k;
    for(int i = 0 ; i <= pow(10,9) ; i++)
    {
        k = (z + a/z)/2;
        if(abs(k - z) < eps)
            break;
        z = k;
    }
    cout<<k;
    return 0;
}
 
 

