6 条题解
-
0
非常抱歉,我无法写下 +、-、*、/ 之类的敏感的符号,所以只能自己手写了
template <class _Tp = const unsigned long long int> class P { _Tp *p { nullptr }; }; signed WinMain(int argv, char argc[]) {} #pragma GCC system_header #include <cstdio> #include <ctype.h> typedef unsigned long long ULL; int add(int a, int b) { if (!a) return b; return add((a & b) << 1, a ^ b); } ULL quick_mul(int a, int b) { ULL res = 0; for (ULL t = a; b; b >>= 1, t <<= 1) if (b & 1) res = add(res, t); return res; } ULL square(int a) { return quick_mul(a, a); } int read() { char ch; int res = 0; while (!isdigit(ch = getchar())); res = ch ^ 48; while (isdigit(ch = getchar())) res = add(quick_mul(res, 10), ch ^ 48); return res; } int binary_div(int a, int b) { int left = -1, right = add(1ll << 31, 0xffffffff); while (left + 1 != right) { int mid = add(left, right) >> 1; if (quick_mul(b, mid) <= a) left = mid; else right = mid; } return left; } int mod(int a, int b) { return a - quick_mul(binary_div(a, b), b); } int is_prime(int a) { if (a <= 1) return 0; for (int p = 2; square(p) <= a; p = add(p, 1)) if (!mod(a, p)) return 0; return 1; } void print(int a) { if (!a) return; print(binary_div(a, 10)); putchar(mod(a, 10) ^ 48); } signed main(int argv, char argc[]) { int a = read(), b = read(); if (is_prime(a) & is_prime(b)) puts("yes"); else if (is_prime(a) ^ is_prime(b)) puts("I can not do it"); else puts("no"); return 0; } -
0
什么难题,我看是水题
设个函数
isprime来判断是否为质数即可:
记得用cmath库。#include<iostream> #include<cmath> #define QwQ return 0; using namespace std; int n,m; bool isprime(int x){ if(x<2)return false; for(int i=2;i<=sqrt(x);i++){ if(x%i==0)return false; } return true; } int main(){ cin>>n>>m; switch(isprime(n)+isprime(m)){ case 2: cout<<"yes"; break; case 0: cout<<"no"; break; case 1: cout<<"I can not do it"; break; } QwQ } -
0
#include<iostream> using namespace std; bool IsPrime(int n){ if(n==1)return false; for(int i=2;i*i<=n;i++)if(n%i==0)return false; return true; } int n,m; signed main(){ cin>>n>>m; if(IsPrime(n)&&IsPrime(m))cout<<"yes"; else if(!IsPrime(n)&&!IsPrime(m))cout<<"no"; else cout<<"I can not do it"; } -
0
秀一波质数筛。
#include<bits/stdc++.h> #define int long long #define INF 0x3f3f3f using namespace std; int a[114514],n,m; signed main(){ for(int i=2;i<=1000;i++) a[i]=1; for(int i=2;i<=1000;i++){ if(a[i]){ for(int j=2;i*j<=1000;j++) a[i*j]=0; } }//质数筛 cin>>n>>m; if(a[n]&&a[m])cout<<"yes"; else if(!(a[n])&&!(a[m]))cout<<"no"; else cout<<"I can not do it"; return 0; } -
0
这题直接体现出了定义函数的重要性。
#include<bits/stdc++.h> using namespace std; bool prime(int a) { if(a==1) { return 0; } for(int i=2;i*i<=a;i++) { if(a%i==0) { return 0; } } return 1; } int main() { int a,b; cin>>a>>b; if(prime(a)&&prime(b)) { cout<<"yes"; } else if(!prime(a)&&!prime(b)) { cout<<"no"; } else { cout<<"I can not do it"; } return 0; } -
0
C++ :
#include<bits/stdc++.h> using namespace std; int n,m,d,q; int main() { cin>>n>>m; for(int i=2;i<=sqrt(n);i++) { if(n%i==0) { q++; break; } } if(n==1|n==0) q++; for(int i=2;i<=sqrt(m);i++) { if(m%i==0) { q++; break; } } if(m==1||m==0) q++; if(q==0) cout<<"yes"; if(q==1) cout<<"I can not do it"; if(q==2) cout<<"no"; }
- 1
信息
- ID
- 29
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- 递交数
- 46
- 已通过
- 34
- 上传者