HDU 4548 미소 수
미소 수: 자체 가 소수 이 고 여러분 의 숫자의 합 도 소수 입 니 다.
소수 표를 치고 여러분 의 숫자 에 대해 화 해 를 구하 고 소수 표를 방문 하여 여러분 과 소수 여 부 를 고찰 합 니 다.
코드 참조:
#include <iostream>
#include <cstring>
#define MAX 1000001
using namespace std;
bool prime[MAX];<span style="white-space:pre"> </span>//
int ans[MAX];<span style="white-space:pre"> </span>//ans
int for_sum(int n)<span style="white-space:pre"> </span>//
{
int sum=0;
while(n)
{
sum+=n%10;
n/=10;
}
return sum;
}
void pre()
{
memset(prime,1,sizeof(prime));
prime[0]=prime[1]=0;
for(int i=2;i<MAX;i++)<span style="white-space:pre"> </span>//
if(prime[i])
for(int j=i*2;j<MAX;j+=i)<span style="white-space:pre"> </span>// j=i*i, __int64 j
prime[j]=0;
for(int i=1;i<MAX;i++) ans[i]=(prime[i] && prime[for_sum(i)]) ? 1 : 0;<span style="white-space:pre"> </span>// ,
for(int i=1;i<MAX;i++) ans[i]+=ans[i-1];<span style="white-space:pre"> </span>//e.g ans[1]=0; ans[2]=ans[1]+ans[2]=1; ans[3]=ans[2]+ans[3]=2;
}
int main()
{
pre();
int T,n,m,k=1;
cin>>T;
while(T-- && cin>>n>>m)
cout<<"Case #"<<k++<<": "<<ans[m]-ans[n-1]<<endl;
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[BOJ] 2581번 소수<< 문제 클릭! 입력 : 자연수 M, N (M, N은 10,000 이하의 자연수, M은 N보다 작거나 같다) 자연수 M이상 N 이하의 자연수 중 소수를 모두 찾는다. : 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.