(Problem 49)Prime permutations
7736 단어 Prim
There are no arithmetic sequences made up of three 1-, 2-, or 3-digit primes, exhibiting this property, but there is one other 4-digit increasing sequence.
What 12-digit number do you form by concatenating the three terms in this sequence?
제목 대의:
1487, 4817, 8147이라는 서열은 각각 이전보다 3330씩 증가하고 이 서열은 두 가지 특징이 있다. 1.서열의 모든 수는 질수다.2. 각 네 자리수는 다른 숫자의 한 배열이다.
1, 2, 3위로 구성된 세 질수의 서열에는 상기 성질을 가진 것이 없다.그러나 또 다른 네 자리의 점증 서열이 이 성질을 만족시킨다.
만약 이 다른 서열의 세 수를 연결한다면, 구성된 12자리의 숫자는 얼마입니까?
//(Problem 49)Prime permutations
// Completed on Thu, 13 Feb 2014, 15:35
// Language: C
//**********************************************
// (C)acutus (mail: [email protected])
// :http://www.cnblogs.com/acutus///**********************************************
#include<stdio.h>
#include<stdbool.h>
#include<stdlib.h>
#include<string.h>
int a[1230];
bool prim(int n)
{
int i;
for(i = 2; i * i <= n; i++) {
if(n % i ==0) return false;
}
return true;
}
int cmp(const void *a, const void *b)
{
return (*(char*)a - *(char*)b);
}
void init()
{
int i, j;
i = 3;
j = 1;
a[0] = 2;
while(j < 1230) {
if(prim(i)) {
a[j++] = i;
}
i += 2;
}
}
bool judge(int a, int b, int c)
{
char A[5], B[5], C[5];
sprintf(A, "%d", a);
qsort(A, 4, sizeof(char), cmp);
sprintf(B, "%d", b);
qsort(B, 4, sizeof(char), cmp);
sprintf(C, "%d", c);
qsort(C, 4, sizeof(char), cmp);
if(strcmp(A, B)== 0 && strcmp(A, C) == 0)
return true;
return false;
}
void solve()
{
int i, b, c, d;
i = 0;
init();
while(a[i++] < 1000);
for(; i < 1229; i++) {
b = a[i]; c = a[i] + 3330; d = a[i] + 6660;
if(d < 9999) {
if(prim(b) && prim(c) && prim(d)) {
if(judge(b, c, d)) {
printf("%d %d %d
", b, c, d);
}
}
}
}
}
int main()
{
solve();
return 0;
}
Answer:
296962999629
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【C언어학습】 제7장 C제어문구: 분기와 점프학습 총결산 1. if...else...의미적으로 보면 용도가 나온다. 다른 언어와 별로 차이가 없다. 단지 기억하기만 하면 세계에서 가장 먼 거리 중 하나: 나는 if를 가고 너는 lse를 간다. 2. 개인의 몇 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.