1 条题解

  • 0
    @ 2023-6-11 12:16:29

    C :

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

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    
    bool sushu(int n){
    	bool f = true;
    	int i;
    	for(i = 2;i <= sqrt(n);i++){
    		if(n % i == 0){
    			f = false;
    			break;
    		}
    	}
    	if(n <= 1){
    		f = false;
    	}
    	return f;
    }
    
    int main(){
    	int a[100][3];
    	int n,i,j,c = 0,x;
    	cin>>n;
    	for(i = 2;i <= n / 3;i++){
    		if(sushu(i)){
    			x = n - i;
    			for(j = i;j <= x / 2;j++){
    				if(sushu(j) && sushu(x - j)){
    					a[c][0] = i;
    					a[c][1] = j;
    					a[c][2] = x - j;
    					c++;
    				}
    			}
    		}
    	}
    	
    	cout<<c<<endl;
    	for(i = 0;i < c;i++){
    		cout<<n<<"="<<a[i][0]<<"+"<<a[i][1]<<"+"<<a[i][2]<<endl;
    	}
    }
    
    • 1

    【基础】哥德巴赫猜想的所有解

    信息

    ID
    2184
    时间
    1000ms
    内存
    16MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者