1 条题解

  • 0
    @ 2025-10-10 15:45:27

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    bool sushu(int n) {
    	int i;
    	bool f=true;
    	if (n<=1) {
    		f=false;
    	}
    	for (i=2;i<=sqrt(n);i++) {
    		if (n%i==0) {
    			f=false;
    		}
    	}
    	return f;
    }
    int main(){
    	char s[30];
    	int i,t,x,f=0;
    	gets(s);
    	for (i=0;i<strlen(s)-1;i++) {
    		t=(s[i]-48)*10+(s[i+1]-48);
    		x=(s[i+1]-48)*10+(s[i]-48);
    		if (sushu(t)==true && sushu(x)==true) {
    			if (f==0) {
    				cout<<t;
    				f++;
    			} else {
    				cout<<","<<t;
    			}
    		}
    	}
    
        return 0;
    }
    
    

    Pascal :

    var a:array['0'..'9']of boolean;
        c,c1:char;
        i,j,k:integer;
    function isprime(n:integer):boolean;
    var i:integer;
    begin
      for i:=2 to trunc(sqrt(n)+1) do
        if n mod i=0 then exit(false);
      exit(true);
    end;
    begin
      while true do
      begin
        read(c);
        if(c>='0')and(c<='9')and(ord(c) mod 2=1)then a[c]:=true
          else if c='%' then break;
      end;
      for c:='1' to '7' do
        for c1:=chr(ord(c)+2) to '9' do
          if a[c] and a[c1] then
          begin
            i:=ord(c)-48;
            j:=ord(c1)-48;
            if isprime(i*10+j) and isprime(j*10+i) then
            begin
              if k>0 then write(',');
              write(i,j,',',j,i);
              k:=1;
            end;
          end;
      writeln;
    end.
    

    Java :

    import java.util.Scanner;
    
    public class Main{
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		String n = sc.next();
    		int[] a = new int[n.length()-1];
    		for (int i = 0;i<n.length()-1;i++) {
    			a[i]= n.charAt(i) - '0';
    		}
    		String s = "";
    		for (int j = 0;j<n.length()-2;j++) {
    			int k =j+1;
    			int x = a[j]*10+a[k];
    			int y = a[k]*10+a[j];
    			if (suShu(x)&&suShu(y)&&x!=y) {
    				s = s + x + ",";
    			}
    		}
    		s = s.substring(0, s.length()-1);
    		System.out.println(s);
    	}
    	public static boolean suShu(int i) {
    		boolean f = true ;
    		if (i==1) {
    			f = false ;
    		}else {
    			for (int j = 2;j<=i/2;j++) {
    				if (i%j==0) {
    					f=false;
    					break;
    				}
    			}
    		}	
    		return f ;
    	}
    }
    

    Python :

    import math
    def sx(x):
        f=0
        for i in range(2,int(math.sqrt(x))):
            if x%i==0:
                f=1
        if f==0:
            return(True)
        else:
            return(False)
    sr=input()
    sr=sr[0:len(sr)-1]
    s=""
    for i in range(0,len(sr)-1):
        a1=int(sr[i])
        a2=int(sr[i+1])
        a=a1*10+a2
        b=a2*10+a1
        if sx(a)==True and sx(b)==True:
            s=s+str(a)+","
    print(s[0:len(s)-1])
    
    • 1

    信息

    ID
    133
    时间
    1000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    3
    已通过
    1
    上传者