问题描述
解决方案
#include
#include
#include
using namespace std;
bool isPrime(int num){
if ((num == 1) || (num == 2)) {
return true;
}
for (int i = 2; i <= num / 2; i++){
if (num % i == 0)
return false;
}
return true;
}
int main(){
int p1 = 2;
for (int p = 2; p <= 100; p++) {
if (isPrime(p)){
if (p - p1 == 2)
cout << "(" << p1 << ", " << p << ")" << endl;
p1 = p;
}
}
return 0;
}
解决方案二:
// for (int j=2;j<=sqrt(i);j++)
// {
// flag=0;
//
// if (i%j==0)
// {
// flag=1;
// break;
// }
//
// }
//
// if (flag==0)
// {
// printf("%d
",i);
// }
// ......
答案就在这里:1-100之间的所有素数
解决方案三:
#include"stdio.h"
void main()
{
int i,j;
int flag,n=0;
int a[100];
for(i=2;i<=100;i++)
{
flag=1;
for(j=2;j<i;j++)
{
if(i%j==0)
{
flag=0;
break;
}
}
if(flag==1)
{
a[n]=i;
n++;
}
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{ if(a[j]-a[i]==2)
{
printf("%d ",a[i]);
printf("%d ",a[j]);
if(a[j+1]-a[j]==2)
{
printf("%d",a[j+1]);
i=3;
}
printf("
");
}
}
}
}
解决方案四:
http://blog.csdn.net/thisispan/article/details/7471752
解决方案五:
#include
using namespace std;
bool isPrimeNum (int num);
int main() {
int a = 0, b = 0;
for (int i=1; i<100; i++) {
if (isPrimeNum(i)) {
a = b;
b = i;
if (b-a==2 && a!=0) {
cout << a <<" and "<<b<<endl;
}
}
}
return 0;
}
bool isPrimeNum (int num) {
int end = num/2;
for (int index=2; index<=end; index++) {
if (num%index==0) {
return false;
}
}
return true;
}