poj 3292 Semi-prime H-numbers

來源:互聯網
上載者:User
#include<stdio.h>char n[250010]={0};int num[250010];void f(){int i,j;for(i=1;i<=251;++i){if(!n[i]){/*a,b是素數,a*b=c,則c是和數,故(4m+1),(4n+1)是素數,(4q+1)是和數(4m+1)*(4n+1)=4q+116mn+4m+n4+1=4q+14mn+m+n=q為其下標關係*/for(int j=i;((((i*j)<<2)+i+j))<=250000;++j)n[((i*j)<<2)+i+j]=1;}}for(i=1;i<=251;i++){if(n[i]==0){for(j=i;((((i*j)<<2)+i+j))<=250000;j++){if(n[j]==0)n[((i*j)<<2)+i+j]=2;}}}num[1]=0;for(i=2;i<=250001;i++)if(n[i]==2)num[i]=num[i-1]+1;else num[i]=num[i-1];}int main(){f();int a,asd;while(scanf("%d",&a),a){asd=(a-1)/4;printf("%d %d\n",a,num[asd]);}return 0;}

該題和找素素數、和數類似,用篩選法

1.篩選出H-primes;

2.篩選出H-semi-prime

3.遍曆,算出各下標對應的H-semi-prime個數。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.