12. 孪生素数就是指相差2的素数对。例如:3和5,5和7,11和13…输入一个正整数n,输出n以内的所有孪生素数。(此问题可以拓展一到“梅森素数”)
方法一:
#include<stdio.h>
main()
{
int a,i,j,k,b;
scanf("%d",&a);
for(i=2;i<=a;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)
break;}
if(i==j)
{
b=i+2;
for(k=2;k<=b;k++)
if(b%k==0)
break;}
if(b==k)
{
printf("%5d%5d\t",i,b);
i++;}
}
}
运行结果:
方法二:
#include<stdio.h>
main()
{
int a,i,j,k,b,c,i_;
scanf("%d",&a);
for(i=2;i<=a;i++)
{
for(j=2;j<=i;j++)
if(i%j==0)
b=j+b;
if(b==i)
{
i_=i+2;
for(j=2;j<=i_;j++)
if(i_%j==0)
c=j+c;
if(b+2==c)
printf("%5d%5d\t",b,c);}
b=0;
c=0;
}
}
运行结果:
如有错误,欢迎指出