题目描述
所谓孪生素数指的就是这种间隔为 2 的相邻素数,它们之间的距离已经近得不能再近了,就象孪生兄弟一样。
最小的孪生素数是 (3, 5),在 100 以内的孪生素数还有 (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61) 和 (71, 73),总计有 8 组。
编写程序,输出不超过m的最大孪生素数对。
样例输入
1000
样例输出
881 883
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i,n;
int j;
int str[1000] = {0};
int count = 0;
int des = 0;
int sum = 0;
scanf("%d",&n);
for(i =2;i < n; i++)
{
int flag = 1;
for(j = 2;j< i;j++)
{
if(i%j == 0 ){
flag = 1;
break;
}else {
flag = 0;
}
}
if(flag == 0)
{
str[count] = i;
count++;
sum++;
}
}
for(count = sum+1; count >=0 ;count--)
{
if((str[count + 1] - str[count]) == 2)
{
printf("%d %d",str[count],str[count + 1]);break;
}
}
return 0;
}