되는대로 살자

[C언어 기출문제&풀이] 약수의개수가 짝수 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 약수의개수가 짝수

malu 2011. 4. 11. 22:25

두 정수 A, B (1 <= A <= B <= 2,000,000,000) 가 주어질때 A 와 B 사이 (A, B 포함) 에 약수 개수가 짝수인 수 개수를 출력하시오.

입력

두 정수 A, B 가 주어진다.

출력

약수 개수가 짝수인 수의 개수를 출력하시오.

입출력 예

입력

3 17

출력 

12
출처:likepad
 
풀이 
걍 제곱수 걸러 내면 됨... 
 
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
 long a,b,i,cnt;
 cin >> a;
 cin >> b;
 cnt=b-a+1;
 for(i=sqrt(a);i*i<=b;i++)
 {
  if(i*i>=a)
   cnt--;
 }
 cout << cnt;
}