C++등차 소 수열 을 어떻게 구 하 는 지 간단히 말 하 다

2472 단어 C++등차 소 수열
제목.
제목:등차 수열
2,3,5,7,11,13...소수 서열 입 니 다.
유사:7,37,67,97,127,157 이렇게 완전히 소수 로 구 성 된 등차 수열 을 등차 소수 수열 이 라 고 한다.
위의 수열 공 차 는 30 이 고 길 이 는 6 이다.
2004 년 에 그린 은 중국인 도 철 헌 과 합작 하여 임의의 길이 의 소수 등차 수열 이 존재 한 다 는 것 을 증명 했다.
이것 은 수론 분야 의 놀 라 운 성과 다!
이 이론 을 바탕 으로 손 에 들 고 있 는 컴퓨터 를 빌려 자신 있 게 검색 하 세 요.
길이 가 10 인 등차 소 수열 의 공차 최소 치 는 얼마 입 니까?
메모:제출 해 야 할 것 은 정수 입 니 다.불필요 한 내용 과 설명 문 자 를 쓰 지 마 십시오.
해제
주절 주절
처음에 이 문 제 를 보 았 을 때 여전히 좀 어 리 석 었 다.왜냐하면 나 는 수학 소 백 이 라 소수 라 는 것 에 대해 가장 두려워 했다.
그리고 많은 사내 들 의 문 제 를 풀 지 못 했 습 니 다.심지어 한 사내 의 코드 를 보고 정신 이 없 었 습 니 다.
그리고 마침내 나 에 게 알 아 볼 수 있 고 매우 정확 하 다 고 생각 하 는 코드 를 찾 았 다.생각 은 다음 과 같다.
사고의 방향
2 층 순환,1 층 순환 은 순환 공차 에 사용 되 고 1 층 순환 은 순환 시작 소수 에 사용 된다.
주의해 야 할 것 은 내부 순환 의 시작 소수 일 때 경계 없 이 순환 해 서 는 안 된다 는 것 이다.상한 선 을 설정 해 야 한다.그렇지 않 으 면 외부 순환 은 영원히 다음 공차 로 갈 수 없다.

내부 순환 이 걸 어 갈 때 는 판단 만 해 야 한다.
① 이 수 는 소수(시작 소수 의 가장 기본 적 인 조건 으로)
② 이 소수 부터 cha 를 공차 로 10 등차 연속 소수 가 존재 할 수 있 는 지 판단 한다.[ok 함수 로 판단 하 겠 습 니 다.
만약 상기 두 가지 조건 이 모두 만족 된다 면 이것 은 우리 가 찾 아야 할 길이 가 10 인 등차 소 수열 이 고 그 공차 의 최소 치 이다.
우 리 는 어 릴 때 부터 찾 았 기 때문에 우리 가 찾 은 만족 조건 의 첫 번 째 가 답 입 니 다~

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
typedef long long ll;
const ll maxn=1e6+50;
ll a[maxn];
bool ok(ll n,ll cha)
{
	for(ll i=0;i<10;i++)
	{
		if(!a[n+i*cha])return 0;
	}
	return 1;
}

int main()
{
	a[1]=0;
	a[2]=1;
	a[3]=1;
	for(ll i=4;i<=1000000;i++)
	{
		bool flag=0;
		for(ll j=2;j*j<=i;j++)
		{
			if(i%j==0)
			{
				flag=1;
				break;
			}
		}
		if(flag)a[i]=0;
		else a[i]=1;
	}
	
	for(ll cha=1;;cha++)
	{
		for(ll i=2;i<1000000;i++)
		{
			if(a[i]&&ok(i,cha))
			{
				printf("%lld
",cha); return 0; } } } }
후기
사실 저 는 소수 에 대한 경외 심 을 가지 고 있 습 니 다.시간 을 내 서 소수 와 관련 된 알고리즘 을 만 져 보고 판 자 를 잘 정리 하 기 를 바 랍 니 다.
정리 가 다 되면 링크 를 업데이트 하 겠 습 니 다!(꼬꼬 꼬~
여기 서 C++등차 소 수열 을 어떻게 구 하 는 지 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 C+등차 소 수열 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기