素数三元组

来源:互联网 发布:苹果电脑mac地址怎么查 编辑:程序博客网 时间:2024/05/21 01:55

素数三元组

时间限制:1000 ms  |  内存限制:65535 KB
难度:1
描述

    相邻三个奇数都是素数是一种非常少见的情形,也就是三个奇数p-2, p, p+2都是素数,这样就形成了一个素数三元组。请找出三个数都不超过n的所有这样的素数三元组。


输入
输入多组数据,每组测试数据为一个正整数n,n <= 5000000。
输出
输出大小不超过n的所有的素数三元组,每行按照从小到大的顺序输出一个三元组中的三个数,两个数之间用空格间隔。如果不存在这样的素数三元组,请输出“No triple”。
样例输入
1
样例输出

No triple


找规律代码:


 #include<iostream>#include<cstring>#include<cstdio>using namespace std;#define T 5000010int bo[T];void Isprime(){memset(bo,0,sizeof(bo));for(int i=2;i<10000;++i){if(!bo[i]){for(int j=i*i;j<T;j+=i){bo[j]=1;}}}}int main(){int n,i,k;Isprime();while (~scanf("%d",&n)){for(i=7,k=0;i<=n;i+=2){if((!bo[i-4])&&(!bo[i-2])&&(!bo[i])){k=1;printf("%d %d %d\n",i-4,i-2,i);}}if(!k)printf("No triple\n");}return 0;}        


AC代码:


#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){int n,i;while (~scanf("%d",&n)){if(n>=7)printf("3 5 7\n");elseprintf("No triple\n");}return 0;}


0 0