회문질수---(질수의 발생)
151은 하나의 질수이자 하나의 회문수이기 때문에 151은 회문수이다.
프로그램 하나를 써서 범위 [a, b](5<=a입력 출력 형식
입력 형식:
첫 번째 줄: 두 개의 정수 a와 b.
출력 형식:
회문 질수의 목록을 한 줄씩 출력합니다.
출력 샘플 가져오기
샘플 입력 #1: 복사
5 500
출력 예제 #1: 복사
5
7
11
101
131
151
181
191
313
353
373
383
설명
Hint 1: Generate the palindromes and see if they are prime.
제시1: 모든 회문수를 찾아서 그것들의 질수(소수)를 판단한다.
Hint 2: Generate palindromes by combining digits properly. You might need more than one of the loops like below.
힌트2: 정확한 회문수를 만들려면 아래와 같은 순환이 몇 개 필요할 수도 있다.
제목 번역은 NOCOW에서 나왔다.
USACO Training Section 1.5
길이가 5인 회신 수 생성:
for (d1 = 1; d1 <= 9; d1+=2) { //
for (d2 = 0; d2 <= 9; d2++) {
for (d3 = 0; d3 <= 9; d3++) {
palindrome = 10000*d1 + 1000*d2 +100*d3 + 10*d2 + d1;//( ...)
}
}
}
#include
#define N_7 10000000
#define N_6 1000000
#define N_5 100000
#define N_4 10000
int isprime(int n){
int i;
for(i=2;i*i<=n;i++)
if(n%i==0)
return 0;
return 1;
}
int main(){
long long int d1,d2,d3,d4,a,b,num,t,n=0;
scanf("%lld %lld",&a,&b);
t=b;
while(b>0){
b/=10;
n++;
}
b=t;
if(n>=1)
for(d1=5;d1<=9;d1+=2){
if(d1<=b&&d1>=a&&isprime(d1))
printf("%lld
",d1);
else if(d1>b)
goto L;
}
if(n>=2)
for(d1=1;d1<=9;d1+=2){
if(d1*10+d1<=b&&d1*10+d1>=a&&isprime(d1*10+d1))
printf("%lld
",d1*10+d1);
else if(d1*10+d1>b)
goto L;
}
if(n>=3){
for(d1=1;d1<=9;d1+=2)
for(d2=0;d2<=9;d2++){
num=d1*100+d2*10+d1;
if(num<=b&&num>=a&&isprime(num))
printf("%lld
",num);
else if(num>b)
goto L;
}
for(d1=1;d1<=9;d1+=2)
for(d2=0;d2<=9;d2++){
num=d1*1000+d2*100+d2*10+d1;
if(num<=b&&num>=a&&isprime(num))
printf("%lld
",num);
else if(num>b)
goto L;
}
}
if(n>=5){
for(d1=1;d1<=9;d1+=2)
for(d2=0;d2<=9;d2++)
for(d3=0;d3<=9;d3++){
num=d1*N_4+d2*1000+d3*100+d2*10+d1;
if(num<=b&&num>=a&&isprime(num))
printf("%lld
",num);
else if(num>b)
goto L;
}
for(d1=1;d1<=9;d1+=2)
for(d2=0;d2<=9;d2++)
for(d3=0;d3<=9;d3++){
num=d1*N_5+d2*10000+d3*1000+d3*100+d2*10+d1;
if(num<=b&&num>=a&&isprime(num))
printf("%lld
",num);
else if(num>b)
goto L;
}
}
if(n>=7){
for(d1=1;d1<=9;d1+=2)
for(d2=0;d2<=9;d2++)
for(d3=0;d3<=9;d3++)
for(d4=0;d4<=9;d4++){
num=d1*N_6+d2*N_5+d3*N_4+d4*1000+d3*100+d2*10+d1;
if(num<=b&&num>=a&&isprime(num))
printf("%lld
",num);
else if(num>b)
goto L;
}
for(d1=1;d1<=9;d1+=2)
for(d2=0;d2<=9;d2++)
for(d3=0;d3<=9;d3++)
for(d4=0;d4<=9;d4++){
num=d1*N_7+d2*N_6+d3*N_5+d4*N_4+d4*1000+d3*100+d2*10+d1;
if(num<=b&&num>=a&&isprime(num))
printf("%lld
",num);
else if(num>b)
goto L;
}
}
L:;
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.