FAFU - OJ 1338 소수 난제 코드
#include
#include
#include
#define N 1230 //
int main()
{
int n;
int s[N];
int c[10000] = {0}; //c[i] i
int a, flag;
int i, j, x;
int point = 2;
int sum = 0, count;
s[1] = 2;
for(a = 3; a <= 10000; a += 2)
{
flag = 0;
for(i = 2; i <= (int)sqrt(a)+1 && flag == 0; i++)
{
if(a % i == 0)
{
flag = 1;
}
if(i == (int)sqrt(a) + 1)
{
s[point++] = a;
}
}
}
for(i = 1; i < N; i++)
{
for(j = i; j < N; j++)
{
sum = 0;
flag = 0;
for(x = i; x <= j && flag == 0; x++)
{
sum += s[x];
if(sum >= 10000) // 10000
{
sum -=s[x];
flag = 1;
break;
}
}
if(flag == 0)
c[sum]++;
}
}
while(scanf("%d", &n) == 1 && n)
{
printf("%d
", c[n]);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
UVa 548 트리제목: 중순과 후순 서열을 제시하고 뿌리에서 잎사귀 결점까지의 경로와 값이 가장 작은 잎사귀 결점을 구한다.값과 같으면 잎사귀 결점 값이 비교적 작은 것을 선택하십시오. 사고방식: 중순과 후순 서열로 돌아가며 두 갈...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.