1 条题解
-
0
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
- 上传者