×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
發表新討論
#657: 不知道哪裡寫的太爛~請各位幫忙一下
bird
(GG)
學校 : 长郡中学
編號 : 2681
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [111.255.206.95]
最後登入時間 :
2010-10-23 20:18:46
c050.
00453 - Goldbach's Conjecture
--
UVa
543
| From: [140.117.182.115] | 發表日期 : 2008-10-05 21:41
#include<iostream>
#include<cmath>
#define max 100000
using namespace std;
int prime(int *a,int n)
{
int flag=1,k=0;
for(int i=2;i<=n;i++){
flag=1;
for(int j=1;j<=sqrt((double)i);j++){
if(i%j==0 && j!=1){
flag=1;break;}
else
flag=0;
}
if(flag==0)
a[k++]=i;
}
return k;
}
bool isprime(int*a,int p)
{
int flag=0;
for(int j=2;j<sqrt((double)p);j++){
if(p%j==0){
flag=0;break;}
else
flag=1;
}
if(flag==1||p==2||p==3)
return 1;
else
return 0;
}
int main()
{
int n;
while(cin>>n)
{
int a[max+1],k,p,flag=0;
k=prime(a,n);
for(int i=k-1;i>=0;i--)
{
p=n-a[i];
if(isprime(a,p)){
flag=1;
cout<<n<<"="<<p<<"+"<<a[i]<<endl;
break;
}
}
if(flag!=1)
cout<<"Goldbach's conjecture is wrong."<<endl;
}
}
ZeroJudge Forum