| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1198 人关注过本帖, 2 人收藏
标题:给大家比较下
取消只看楼主 加入收藏
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
结帖率:88%
收藏(2)
已结贴  问题点数:100 回复次数:0 
给大家比较下
孪生素数问题
                                                  时间限制:3000 ms  |  内存限制:65535 KB
描述
写一个程序,找出给出素数范围内的所有孪生素数的组数。一般来说,孪生素数就是指两个素数距离为2,近的不能再近的相邻素数。有些童鞋一看到题就开始写程序,不仔细看题,咱们为了遏制一下读题不认真仔细的童鞋,规定,两个素数相邻为1的也成为孪生素数。
输入
第一行给出N(0<N<100)表示测试数据组数。
接下来组测试数据给出m,表示找出m之前的所有孪生素数。
(0<m<1000000)
输出
每组测试数据输出占一行,该行为m范围内所有孪生素数组数。
样例输入
1
14


一下是三个算法:
算法一:
#include "stdio.h"
#include "math.h"
int main()
{
  int n,m;
  bool isprime(int n);
  scanf("%d",&n);
while(n--)
{
  int count=0,i=3;
  scanf("%d",&m);
  if(m>2)count++;
  while(i<=m-2)
  {
    if(isprime(i)&&isprime(i+2))count++;
    i=i+2;
  }   
     printf("%d",count);      
}
  return 0;
      
}
bool isprime(int n)
{
    if(n < 2) return false;

    for(int i =2; i<=sqrt(n); ++i)
        if(n%i == 0) return false;

    return true;
}


算法二:
#include<stdio.h>
#include<math.h>
int a[1000005];
int main()
{
int is_prime(int n);
int i,j,n;
for(i=2,j=0;i<1000005;i++)
{
if(is_prime(i))
{
a[j]=i;
j++;
}
}
scanf("%d",&n);
while(n--)
{
int m,p,q,count=0;
scanf("%d",&m);
if(m==0||m==1)
{
printf("0\n");
continue;
}
for(i=1;a[i]<=m;i++)
{
if((a[i]-a[i-1]==1)||(a[i]-a[i-1]==2))
count++;

}
printf("%d\n",count);


}
return 0;

}
int is_prime(int n)
{
int flag=0,i;

if(n==1||n<=0)
return 0;
else
{
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
flag=1;
break;
}

}
if(!flag)
return 1;
else
return 0;
}
}


算法三:
#include <iostream>
#include<math.h>
using namespace std;
bool vis[1000010];
int main()
{
int n=1000010;
int m =sqrt(n+0.5);
int c=0;
for(int i =2;i<=m;i++)
if(!vis[i])
{
for (int j = i*i;j<=n;j+=i)
vis[j]=1;
}
cin>>n;
while(n--)
{
int count=0,m;
cin>>m;
for(int i=3;i<m-1;i++)
{
if(!vis[i] && !vis[i+2]) count++;
}
if(m>3)
cout<<count+1<<endl;
else if(m==3) cout<<"1"<<endl;
else cout<<"0"<<endl;
}
return 0;
}

看看算法的时间复杂度
搜索更多相关主题的帖子: 童鞋 
2013-10-03 16:18
快速回复:给大家比较下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011888 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved