首页 > 代码库 > hdu 2098 分拆素数和
hdu 2098 分拆素数和
WA了好几发..........原来是我的数组越界了,习惯性定义了prime[maxn] 但是每次都去改写maxn位置!!!!
太大意了 要时刻提醒自己不要忘记数组不要越界!
下面是AC代码~~~
1 #include<iostream> 2 #include<memory.h> 3 using namespace std; 4 #define maxn 10005 5 int prime[maxn]; 6 void f() 7 { 8 memset(prime,0,sizeof(prime)); 9 prime[0] = prime[1] = 1;10 for(int i = 2; i < maxn; i++)11 {12 if(!prime[i])13 {14 for(int j = i * 2; j < maxn; j += i)15 prime[j] = 1;16 }17 }18 }19 int main()20 {21 int n,cnt;22 f();23 while(cin>>n && n)24 {25 cnt = 0;26 for(int i = 3; i < n / 2; i += 2) //只考虑奇数27 {28 if(prime[i] == 0 && prime[n - i] == 0)29 {30 if(i != n - i)//!!!!!!!!31 cnt++;32 }33 }34 cout<<cnt<<endl;35 }36 return 0;37 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。