Dãy hoàn hảo
Trong một buổi học Toán, An được học khái niệm về số có tính chất đặc biệt. Số hoàn hảo là số có tổng các ước trừ nó ra thì bằng chính nó.
Ví dụ: Số 6 là số hoàn hảo vì 1+2+3=6
Số 8 không phải là số hoàn hảo vì 1+2+4=7≠8
Cho một dãy số gồm n số nguyên a1, a2,…..an. Hãy giúp An đếm xem trong dãy có bao nhiêu số là số hoàn hảo.
Dữ liệu vào: Từ file văn bản hoanhao.inp:
- Dòng 1: n số nguyên
- Dòng 2: Các số nguyên a1, a2,…..an.
Kết quả: Ghi ra file văn bản hoanhao.out:
- Dòng 1: Số lượng số hoàn hảo
- Dòng 2: Tổng của các số hoàn hảo có trong dãy
Nếu không tồn tại số hoàn hảo trong dãy thì ghi Dãy không có số hoàn hảo
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,t,dem;
//chuongtrinhcon
bool kthh(long long n)
{
if (n<=1) return(false);
else
long long t=0;
for (long long i=1; i<=n/2;i++)
if (n%i==0) t=t+i;
if (t==n) return(true);
else return(false);
}
//chuongtrinhchinh
int main()
{
freopen("hoanhao.inp","r",stdin);
freopen("hoanhao.out","w",stdout);
cin>>n;
t=0;
dem=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (kthh(x)==true)
{
dem++;
t=t+x;
}
}
cout<<dem<<endl;
cout<<t;
return 0;
}