SUU TAM
Trong số học, số phong phú là các số mà tổng các ước số của số đó (không kể chính nó) lớn hơn số đó.
Ví dụ, số 12 có tổng các ước số (không kể 12) là 1 + 2 + 3 + 4 + 6 = 16 > 12. Do đó 12 là một số phong phú.
Bạn hãy lập trình đếm xem có bao nhiêu số phong phú trong đoạn [L,R].
Dữ liệu
Gồm 2 số L, R (1 <= L <= R <= 105)
Kết quả
Gồm 1 số nguyên duy nhất là số số phong phú trong đoạn [L, R].
Chú ý
Có 50% số test có 1 <= L <= R <= 103
Ví dụ
Dữ liệu
1 50
Kết quả
9
Giải thích:
Từ 1 đến 50 có 9 số phong phú là:
12, 18, 20, 24, 30, 36, 40, 42, 48
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
long L,R,t,k;
int dem =0;
cin>>L>>R;
for( long i =L;i<=R;i++)
{
if( i %2 == 0)
{
t =1;
k = (long)sqrt(i);
for( int j=2;j<= k;++j)
if(i%j==0)
t+=j+ i/j;
if(k*k == i)t -=k;
if(t>i)++dem;
}
else if ( i%10 ==5)
{
t =1;
k = (long)sqrt(i);
for( int j=3;j<= k;j+=2)
if(i%j==0)
t+=j+ i/j;
if(k*k == i)t -=k;
if(t>i)++dem;
}
}
if(L <= 81081 && 81081<=R) ++dem;
cout<<dem;
// system("pause");
return 0;
}
0 comments:
Post a Comment