(파일 IO) : 입력 : div.in 출력 : div.out의
시간 제한 : 1000 MS 공간 제약 : 13만1천72킬로바이트의 특정 제한
고토 ProblemSet
제목 설명
마을의 머리에 염소 년도 가르쳐 양고기를 배우기 시작
단지 네 개의 연산 학습 언어. 시장은 보드에 두 개의 정수를 썼다
및
,이 어린 양에게 물었다
양과 동등으로 나누어
양 마을, 각 번호에 할당 된 마을 양이 동일해야합니다, 최대 수의 분포는 어느 정도입니까? 어린 양이 답을 얻을 재빨리, 각 마을의 양에 할당
쥐가
양에만 주문을 배치 할 수 있습니다. 시장은 화이트 보드에 쓴
. 예, 이것은이다
(분할 가능) 사용을!
결과가 보드에 존재하지 않는 경우가 어린 양 나누어 작업을 지배 여부를 테스트하기 위해, 시장 요구 어린 양 두 개의 서로 다른 화이트 보드에서 어떤 번호를 선택 바꿨다, 많은 수의, 소수로 나누어, 당신은 가치에 쓰기 화이트 보드에. 전에 보지 못했다 수없는 어린 양까지 정수.
이 클래스는 컴퓨팅 파워 양고기 운동, 이에 수업 시간이지만. 수업 시간을 제어하기 위해, 시장은 현재 화이트 보드에, 결국 보드에 몇 수있을 것입니다 수치에 따르면, 알고 싶어? 지금은 그가 빨리 계산하는 프로그램을 작성 도움말을 요청!
입력
정수 첫 번째 줄을
, 화이트 보드에 현재 나타나의 정수를 나타낸다.
두번째 라인
정수, 각 번호가 다르다는 것을 보장하기 위하여 판의 현재 개수를 나타내는, 공간에 의해 분리된다.
출력
출력 최종 디지털 화이트 보드의 수를 나타내는 정수.
입력 샘플
[1]의 입력 샘플
2
16 3
입력 샘플 [2]
. 3
. 17 (1) (2)
샘플 출력
[출력 1] 샘플
4
[2] 샘플 출력
5
데이터 범위 제한
데이터 %
;
데이터 %
.
팁
[샘플
설명]
보세요
및
, 쓰기
, 선택
와
, 쓰기
, 총
, 네 개의 정수.
샘플 2 설명]
보세요
및
, 적어
한 다음 선택
과
, 적어
, 총
, 다섯 정수.
문제 해결 방안의
데이터가 작은, 디지털 기억 발생 배럴을 열 수는 폭력 N ^ 2 개를 열거 할 수 있고, Y는 버킷에 한번, 결과 값을 산출했다. 는 x가 / Y는 X 미만이어야하기 때문에, 그 결과, 최종 집계 번호를 모두 얻을 수있다.
코드
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;
int n,a[105],f[105],ans;
int main(){
freopen("div.in","r",stdin);
freopen("div.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
f[a[i]]=1;
}
for(int i=100;i>=1;i--)
{
if(f[i])
{
for(int j=i-1;j>=1;j--)
if(f[j])
f[i/j]=1;
}
}
ans=0;
for(int i=1;i<=100;i++)
if(f[i]==1)
ans++;
printf("%d",ans);
}