zoukankan      html  css  js  c++  java
  • 【算法与数据结构】【WEEK1】杰哥和数字+素数区间

    map记录数字拆解后的情况

    #include <bits/stdc++.h>
    #define rep(i,x,n) for(int i=x;i<n;i++)
    #define repd(i,x,n) for(int i=x;i<=n;i++)
    using namespace std;
    map<int,int> mp[2];
    int n,ans=0;
    
    inline void spl(int x,int op)
    {
    	int k=x;
    	mp[op].clear();
    	while(k>0)//因为数字只有9位,不用搞什么特判去跳出 
    	{
    		if(!mp[op][k%10])
    		{
    		    mp[op][k%10]++;
    	            if(op&&mp[0][k%10])
    		    {
                            ans++;
    			return;
    		     } 
    		}
    		k/=10;
    	}
    }
    
    int main()
    {
    	cin>>n;
        spl(n,0);
        int t = sqrt(n);
    	repd(i,1,t)
    	{
    		if(n%i==0)
    		{
    			if(i*i==n)
    			    spl(t,1);
    			else 
    			    spl(i,1),spl(n/i,1);
    		}
    	}
    	cout<<ans;	
        return 0;
    }
    
    

    线性筛+二分,特判1

    #include <bits/stdc++.h>
    #define rep(i,x,n) for(int i=x;i<n;i++)
    #define repd(i,x,n) for(int i=x;i<=n;i++)
    #define lowbit(x) (x&-x)
    using namespace std;
    const int N = 1E5+10,PN = N/2;
    vector<int> prime;
    int nprime[N];
    void Euler()
    {
    	for(int i=2;i<=N;i++)
    	{
    		if(!nprime[i])
    		   nprime[i]=i,prime.push_back(i);
    		   
    		rep(j,0,prime.size())
    		{
    			if(prime[j]*i>N||prime[j]>nprime[i])
    			   break;
    			else 
    			   nprime[i*prime[j]]=prime[j];
    		}
    	}
    }
    int ask(int x)
    {
    	int pos=upper_bound(prime.begin(),prime.end(),x)-prime.begin();
    	return prime[pos]-prime[pos-1]-1;
    }
    int main()
    {
    	Euler();
        
    	int t,x;
    	cin>>t;
    	repd(i,1,t)
    	{
    		cin>>x;
    		if(x==1||nprime[x]==x) cout<<0<<endl;
    		else cout<<ask(x)<<endl;
    	}
    	return 0;
    }
    
    
  • 相关阅读:
    字符串内部查找函数
    vs2005 编译zlib 1.2.3 小记
    ies4linux 安装
    详述IP数据包的转发流程
    看源代码
    091213
    值得你记住并受用一生的Word XP/2003快捷键
    java开源框架的源代码怎么读?
    excel中的EMBED域介绍
    如何用c语言实现CString的构造函数、析构函数和赋值函数?
  • 原文地址:https://www.cnblogs.com/BeautifulWater/p/15228831.html
Copyright © 2011-2022 走看看