7 条题解
-
5
定义一个函数他不香吗,走起!
已AC,请放心食用
#include <bits/stdc++.h> using namespace std; int prime(int n) { for (int i = 2; i < n; i++) { if (n % i == 0 || n == 1) { return false; } } return true; } int main() { int n; cin >> n; for (int i = 4; i <= n; i += 2) { for (int j = 2; j <= i / 2; j++) { if (prime(j) && prime(i - j)) { cout << i << "=" << j << "+" << i - j << endl; } } } return 0; }
养成好习惯,看后点个赞( •̀ ω •́ )✧!
-
3
这道题主要是埃式筛法,不然会超时;以下是埃式筛法的代码;先把1~n之间的素数找出;
bool vis[205];//在适当时可以换 bool prime(int n) { vis[0] = vis[1] = 1; for (int i = 2; i <= n; i++) { if (!vis[i]) { for (int j = i * 2; j <= n; j += i) { vis[j] = 1; } } } }
这里的判断只能从2~i/2,不然会重复输出如10=3+7和10=7+3都会输出;上代码!
for (int i = 1; i <= e; i++) { if (i % 2 == 0) { for (int j = 2; j <= i/2; j++) { if (!vis[j] && !vis[i - j]) { cout<<i<<"="<<j<<"+"<<i-j<<endl; } } } }
-
1
过辣!
long long n; cin>>n; for (int i=4;i<=n;i+=2)//找偶数 { for (int a=2;a<i-1;a++)//找加数1 { int cnt1=0,cnt2=0,b=i-a;//找加数2 bool flag=1; if (a>b) { break; } for (int j=1;j<=a;j++) { if (a%j==0) { cnt1++; } if (cnt1>2) { flag=0; break; } } for (int j=1;j<=b;j++) { if (b%j==0) { cnt2++; } if (cnt2>2) { flag=0; break; } } if (flag) { cout<<i<<"="<<a<<"+"<<b<<endl; } } }
-
1
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; for(int i=4;i<=n;i+=2) { int b=1; for(int c=2;c<=i/2;c++) { for(int j=2;j<=i;j++) { b=1; if(c+j==i) { for(int d=2;d<c;d++) { if(c%d==0) { b=0; break; } } if(b==1) { for(int u=2;u<j;u++) { if(j%u==0) { b=0; break; } } if(b==1) { cout << i << "=" << c << "+" << j << endl; } } else if(b==0) { continue; } } } } } return 0; }
-
-1
#include <bits/stdc++.h> using namespace std; void g(int n) { int b=1; for(int i=2;i<=n/2;i++) { for(int j=2;j<=n;j++) { b=1; if(i+j==n) { for(int d=2;d<i;d++) { if(i%d==0) { b=0; break; } } if(b==1) { for(int u=2;u<j;u++) { if(j%u==0) { b=0; break; } } if(b==1) { cout << n << "=" << i << "+" << j << endl; } } else if(b==0) { continue; } } } } } int main() { int n; cin >> n; for(int i=4;i<=n;i+=2) { g(i); } return 0; }
-
-4
#include<bits/stdc++.h> using namespace std; bool prime(int x) { if(x<=1)return for(int i=2;i<=sqrt(x);i++)```{ if(x%i==0)return false; } return true; } int main() { int n; cin>>n; for(int i=4;i<=n;i+=2) { for(int a=1,b=i-a;b>=a;a++,b--) { if(prime(a) and prime(b)) { cout<<i<<"="<<a<<"+"<<b<<endl; } } } return 0; }
- 1
信息
- ID
- 135
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 2
- 标签
- 递交数
- 109
- 已通过
- 64
- 上传者