题目描述:
数学上把相差为22的两个质数叫做“孪生质数”。孪生质数并不少见,例如:33和55,55和77,1111和1313。人们已经知道:小于100000100000的自然数中有12241224对孪生质数;小于10000001000000的自然数中有81648164对孪生质数;小于3300000033000000的自然数中有152892152892对孪生质数;而目前所知道的最大的孪生质数对是:10000000096491000000009649和10000000096511000000009651
那么,孪生质数会不会有无穷多对?这个问题至今没有解决。现在请你编写一个程序,来帮助数学家解决该问题,根据数学家输入的一个范围,给出该范围内所有的孪生质数。
输入
输入两个整数m,n(00<m<n)表示范围[m,n]
m,n≤100000
输出
输出[m,n]中的所有孪生素数对
输入样例 1
1 13
输出样例 1
3 5 5 7 11 13
#include<stdio.h>
#include<math.h>
int isPrime(int num)
{
if(num==1)
{
return 0;
}
int i;
for(i=2;i<=sqrt(num);i++)
{
if(num%i==0)
{
return 0;
}
}
return 1;//是素数
}
int main()
{
int m,n;
scanf("%d %d",&m,&n);
for(m>0;m<=n-2;m++)
{
if(isPrime(m)&&isPrime(m+2))
{
printf("%d %d\n",m,m+2);
}
}
return 0;
}