zoukankan      html  css  js  c++  java
  • 分拆素数和[HDU2098]

    分拆素数和

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 16581    Accepted Submission(s): 7226

     

    Problem Description
    把一个偶数拆成两个不同素数的和,有几种拆法呢?
     

     

    Input
    输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
     

     

    Output
    对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
     

     

    Sample Input
    30
    26
    0
     

     

    Sample Output
    3
    2
     

     

    Source
    2007省赛集训队练习赛(2)
     

     

    Recommend
    lcy

    #include<stdio.h>
    #include<string.h>
    bool f[10025];
    int p[10000];
    int T,x;
    void getprime()
    {
    	int i,j;
    	memset(f,true,sizeof(f));
    	f[0]=f[1]=false;
    	for (i=2;i<=10000;i++)
    		if (f[i])
    			for (j=i+i;j<=10000;j+=i)
    				f[j]=false;
    	T=0;
    	for (i=2;i<=10000;i++)
    		if (f[i]) p[++T]=i;
    }
    int main()
    {
    	getprime();
    	int i;
    	while (scanf("%d",&x)!=EOF)
    	{
    		if (x==0) return 0;
    		int ans=0;
    		for (i=1;i<=T;i++)
    		{
    			if (p[i]>=(x/2)) break;
    			if (f[x-p[i]]) ans++;
    		}
    		printf("%d
    ",ans);
    	}
    	return 0;
    }
    

     

  • 相关阅读:
    uva-321-暴力枚举-隐式图搜索
    uva-704-暴力枚举-双向bfs
    整数的无符号编码和有符号编码
    HDU 5793
    HDU 5730
    HDU 5740
    HDU 5768
    HDU 1194
    HDU 1086
    HDU 5145
  • 原文地址:https://www.cnblogs.com/dramstadt/p/3256141.html
Copyright © 2011-2022 走看看