首页 > 其他分享 >Semi-prime H-numbers UVA - 11105

Semi-prime H-numbers UVA - 11105

时间:2023-04-11 23:35:49浏览次数:51  
标签:prime int vis 素数 numbers UVA include

  所有形如4n+1(n为非负整数)的数叫H数。定义1是唯一的单位H数, H素数是指本身不是1,且不能写成两个不是1的H数的乘积。 H-半素数是指能写成两个H素数的乘积的H数(这两个数可以相同也可以不同)。   例如,25是H-半素数,但125不是。 输入一个H数h(h≤1000001),输出1~h之间有多少个H-半素数。     类似埃筛法  

#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
const int  M=1e6+2;


int b[M+5],p[M+5],vis[M+5],tot ;
int A[M+5];
void sov(){
	int i,j,x;
	for(i=5;i<=M;i+=4){
		if(b[i]) continue;
		p[++tot]=i;
		for(j=1;j*i<=M;j+=4) b[j*i]=1;
	}

	for(i=1;i<=tot;i++)
		for(j=1;j<=tot;j++){
			if(p[i]*p[j]>M) break; 
			vis[p[i]*p[j]]=1;
		}
	
	for(i=1;i<=M;i++)
		A[i]=A[i-1]+(vis[i]);
	
	while(cin>>x,x){
		cout<<x<<' '<<A[x]<<endl;
	}
}
signed main() {
	sov();
}

 

标签:prime,int,vis,素数,numbers,UVA,include
From: https://www.cnblogs.com/towboa/p/17308262.html

相关文章

  • CF698F Coprime Permutation 题解
    题意给定一个未填满的数组\(p\),求有多少种\(1\simn\)的排列\(p\)满足对于任意\(i<j\),都有\([\gcd(i,j)=1]=[\gcd(p_i,p_j)=1]\),答案对\(10^9+7\)取模。题解部分参考这篇题解(感觉这篇题解应该是目前为止最详细的吧)。记\(P\)为\([1,n]\)中所有素数与\(1\)构成......
  • Zeros and Ones UVA - 12063
      给出n、k(n≤64,k≤100),有多少个n位(无前导0)二进制数的1和0一样多,且值为k的倍数?  f[i][j][k] #include<iostream>#include<cstring>#include<cmath>#include<algorithm>usingnamespacestd;#definelllonglongintn,m;llf[102][102][102];vo......
  • UVA1646 圈图的匹配 Edge Case
      n个点连成一个圆,求没有公共点的边集的个数不考虑第n条边f[n]=f[n-1]+f[n-2]现在考虑第n条边ans=f[n]+f[n-2] f=[0]*10005f[1]=1f[2]=2foriinrange(3,10004):f[i]=f[i-1]+f[i-2]while1:try:n=int(input())print(f[n]+f[n......
  • Divisors UVA - 294
    求区间[L,R]的整数中哪一个的正约数最多。  一个数因数分解后,它的约数Cnt=(a[j]+1)的乘积,j是每个因数的个数 #include<iostream>#include<cstring>#include<cmath>#include<algorithm>usingnamespacestd;constintM=1e5+30;#defineintlonglo......
  • Perfect P-th Powers UVA - 10622
     给出n,写成n=x^p的形式,求p最大值#include<iostream>#include<vector>#include<cmath>#include<algorithm>usingnamespacestd;#defineintlonglongintflg=0;intgcd(intx,inty){ returny==0?x:gcd(y,x%y);}voidsov(in......
  • Sum of Consecutive Prime Numbers UVA - 121
     #include<iostream>#include<cstring>#include<cmath>#include<algorithm>usingnamespacestd;constintM=1e4+33;intb[M],c[M],tot;ints[M];voidinit(inttop){memset(b,1,sizeofb);b[1]=0;inti,j;......
  • Sum of Different Primes UVA - 1213
     选择K个质数,使它们的和等于N。问有多少种方案?例如,n=24,k=2时有3种方案:5+19=7+17=11+13=24 #include<iostream>#include<cstring>#include<cmath>#include<algorithm>usingnamespacestd;constintM=1e6+33;intb[M],c[M],tot;intn,m,f[2000][20];......
  • Magical GCD UVA - 1642
     对序列A, 求(j-i+1)*gcd(i,i+1,...j)最大值 G(i)=gcd(G[i-1],a[i]) 即前缀值不升维护1~j-1可能的i 值(logn个) O(n*log^2#include<iostream>#include<map>#include<cmath>#include<algorithm>usingnamespacestd;constintN=......
  • Lighting System Design uva11400
    设计一个照明系统,一共有n(n<=1000)种灯泡可供选择,不同种类的灯泡必须用不同的电源,同一种灯泡则可以用一个,输入为一个n,以下n行,每行四个数值,代表电压V,电源费用K,每个灯泡费用C,所需灯泡数量L。n=0为结束标志。为了省钱,你可以把一些灯泡换成电压更高的以节省电源的钱,但不能换成更低的,......
  • c++Primer 14 重载运算符与类型转换
    除了重载的函数调用运算符operator()之外,其他重载运算符不能含有默认实参。      泛型算法中调用的几元谓词是看函数对象的调用运算符的参数个数。而不是构造函数的参数个数。    转换构造函数只能有一个参数,如果他有多个参数,就无法判断是将哪个参数转......