筛选法

来源:互联网 发布:矩阵论向量求导 编辑:程序博客网 时间:2024/04/27 14:36

HDU-1215-七夕节

http://acm.hdu.edu.cn/showproblem.php?pid=1215

#include<stdio.h>#include<string.h>#include<stdlib.h>int a[500001];void init(){int i,j;memset(a,0,sizeof(a));for(i=1;i<=500000;i++)a[i]=1;for(i=2;i<=250000;i++)for(j=2;i*j<=500000;j++)a[i*j]+=i;}int main(){int t,n;init();scanf("%d",&t);while(t--){scanf("%d",&n);printf("%d\n",a[n]);}return 0;}

HDU-1286-找新朋友

http://acm.hdu.edu.cn/showproblem.php?pid=1286

#include<stdio.h>#include<string.h>#include<stdlib.h>int a[40000];int main(){int i,j,t,n,ans;scanf("%d",&t);while(t--){scanf("%d",&n);memset(a,0,sizeof(a));for(i=2;i<=n;i++)if(n%i==0){for(j=2;j<=n;j+=i)a[j]=1;}ans=0;for(i=2;i<=n;i++)if(a[i]==0)ans++;printf("%d\n",ans+1);}return 0;}

HDU-1999-不可摸数

http://acm.hdu.edu.cn/showproblem.php?pid=1999

#include<stdio.h>#include<string.h>#include<stdlib.h>int a[1000001],b[1001];void init(){int i,j;for(i=1;i<=500000;i++)for(j=2;i*j<=1000000;j++)a[i*j]+=i;for(i=2;i<=1000000;i++)if(a[i]<=1000)b[a[i]]=1;}int main(){int t,n;init();scanf("%d",&t);while(t--){scanf("%d",&n);if(b[n]==1)printf("no\n");elseprintf("yes\n");}return 0;}




原创粉丝点击