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에 따라 라이센스가 부여됩니다.