2 条题解

  • 0
    @ 2023-10-6 11:09:00

    纯暴力写法

    #include<stdio.h>
    #include<math.h>
    int main() {
    int n;
    scanf("%d",&n);
    int b;
    int k,q,j;
    int qian=0,hou=0;
    for(int i=1; i<=n; i++) {
    scanf("%d",&b);
    int su=1;
    if(b==1) {
    printf("2 1");
    printf("\n");
    } else if(b!=1) {
    for(int j=2; j<=sqrt(b); j++) {
    if(b%j==0) {
    su=0;
    break;
    }
    
    
    
    }
    		if(su==1) {
    			printf("%d 0\n",b);
    		} else if(su==0) {
    			for(k=b;; k++) {
    				su = 1;
    				for(j=2; j<=sqrt(k); j++) {
    					if(k%j==0) {
    						su=0;
    						break;
    					}
    
    				}
    				if (su==1) {
    					break;
    				}
    			}
    			 hou = k - b;
    			for(q=b;; q--) {
    				su = 1;
    				for(j=2; j<=sqrt(q); j++) {
    					if(q%j==0) {
    						su=0;
    						break;
    					}
    
    				}
    				if (su==1) {
    					break;
    				}
    			}
    			 qian=b-q;
                 if(hou>qian){
    			printf("%d %d",q,qian);
    		    }
    		    else if(hou<qian){
    			printf("%d %d",k,hou);
    		    }
    		    else if(hou==qian){
    		    	printf("%d %d",q,qian);
    		    }
                printf("\n");
    		}
    		
    
    	}
    }
    return 0;
    

    }

    • 0
      @ 2023-8-15 17:34:00

      #include<iostream> #include<cmath> using namespace std;

      bool isprime(int n) { for(int k=2;k<=sqrt((double)n);k++) if((n%k)0) return false; return true; } int main() { int n; cin>>n; while(n--) { int num,i,j; cin>>num; if(num1) { cout<<"2 1"<<endl; continue; } for(i=num;!isprime(i);i--); for(j=num;!isprime(j);j++);

      if((num-i)<(j-num))
      		cout<<i<<' '<<(num-i)<<endl;
      	else if((num-i)>(j-num))
      		cout<<j<<' '<<(j-num)<<endl;
      	else if((num-i)==(j-num))
      		cout<<i<<' '<<(num-i)<<endl;
      }
      

      }

      • 1

      信息

      ID
      127
      时间
      3000ms
      内存
      128MiB
      难度
      8
      标签
      (无)
      递交数
      2011
      已通过
      265
      上传者