zoukankan      html  css  js  c++  java
  • nyoj26-孪生素数问题

    孪生素数问题

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:3
    描述
    写一个程序,找出给出素数范围内的所有孪生素数的组数。一般来说,孪生素数就是指两个素数距离为2,近的不能再近的相邻素数。有些童鞋一看到题就开始写程序,不仔细看题,咱们为了遏制一下读题不认真仔细的童鞋,规定,两个素数相邻为1的也成为孪生素数。
    输入
    第一行给出N(0<N<100)表示测试数据组数。
    接下来组测试数据给出m,表示找出m之前的所有孪生素数。
    (0<m<1000000)
    输出
    每组测试数据输出占一行,该行为m范围内所有孪生素数组数。
    样例输入
    1
    14
    样例输出
    4
     
    #include <iostream>  
    #include <cstring>  
    #include <cmath>  
       
    using namespace std;  
       
    int a[1000000];  
       
    void isPrime(int number)  
    {  
        int i,j;  
        for(i=1;i<=number;i++)  
            if(i%2)  
                a[i]=1;  
               
        for(i=3;i<=sqrt(number);i+=2)  
            if(a[i])  
            {  
                for(j=i*2;j<=number;j+=i)  
                    a[j]=0;  
            }  
    }  
       
    int main()  
    {  
        int n,m,i,count;  
        cin>>n;  
        while(n--)  
        {  
            cin>>m;  
            memset(a,0,sizeof(a));  
            count=0;  
            isPrime(m);  
            for(i=2;i<=m-2;i++)           
                if(a[i] && a[i+2])    //判断是否为素数  
                    count++;  
            if(m>=3)  
                count++;  
                   
            cout<<count<<endl;  
        }  
        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;
    }        

  • 相关阅读:
    事件对象
    type of 操作符和instanceof操作符的区别以及使用方法
    JS:XML
    JS:事件处理程序
    JS:event对象下的target属性和取消冒泡事件
    JS:callee属性
    JS:call()和apply的区别
    JS:事件对象1
    DOM元素的大小和位置
    CSS:在IE浏览器下,元素下沉一行的解决办法
  • 原文地址:https://www.cnblogs.com/aerer/p/9931106.html
Copyright © 2011-2022 走看看