6 条题解

  • 0
    @ 2025-9-14 10:25:44

    非常抱歉,我无法写下 +、-、*、/ 之类的敏感的符号,所以只能自己手写了

    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
      @ 2025-8-8 9:47:51

      什么难题,我看是水题

      设个函数 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
        @ 2024-12-28 22:12:36
        #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
          @ 2024-12-28 15:54:01

          秀一波质数筛。

          #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
            @ 2024-12-24 21:39:38

            这题直接体现出了定义函数的重要性。

            #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
              @ 2024-12-22 11:03:54

              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
              上传者