64,671
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include <cmath>
using namespace std;
int is_prime(int num);
int main()
{
int n,c=0,count=0, i;
cin >> n;
int prev = 2, cur;
for (i = 3; i < n; i += 2) {
if (is_prime(i)) {
if (c % 10 == 0)
cout<<endl;
cout<<i<<'\t';
cur = i;
if (cur - prev == 2)
count++;
prev = cur;
c++;
}
}
cout<<endl;
/*
int a[100];
for (int i = 1;i <= n;i++)
{
int b = 2;
while (b < i)
{
if (i%b == 0)
break;
b++;
}
if (b==i)
{
cout<<i<<endl;
a[c] = i;
c++;
}
}
for (int i = 0;i < c;i++)
{
if (a[i + 1] - a[i] == 2)
count++;
}
*/
cout <<"total number: "<< count<<endl;
}
int is_prime(int num)
{
int len = sqrt(num), i;
for (i = 2; i < len + 1; i++)
if (num % i == 0)
break;
if (i >= len + 1)
return 1;
return 0;
}
参考一下吧
不用数组,可以节省空间;另外,素数判断也可以优化一下,提高效率;