题目描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对输入描述:
输入一个偶数
输出描述:
输出两个素数
示例1
输入
20输出
7 13 import java.util.Scanner; public class Main{ public static void main(String []args){ Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int num=sc.nextInt(); int n=num/2; int min=n; int max=n; for(int i=0;i<n;i++){ if(Judge(min)&&Judge(max)&&(min+max==num)){ System.out.println(min); System.out.println(max); break; } min-=1; max+=1; } } } //判断素数 public static boolean Judge(int number){ int count=0; for(int i=2;i<number;i++){ if(number%i==0) count++; } if(count!=0) return false; else return true; }}
题目描述
自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n以内的自守数的个数
接口说明
/* 功能: 求出n以内的自守数的个数
输入参数: int n
返回值: n以内自守数的数量。 */
public static int CalcAutomorphicNumbers( int n) { /*在这里实现功能*/
return 0; }
输入描述:
int型整数
输出描述:
n以内自守数的数量。
示例1
输入
2000输出
8方法1:转成字符串,截取最后几位来操作
import java.util.Scanner; public class Main{ public static void main(String []args){ Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int n=sc.nextInt(); System.out.println(CalcAutomorphicNumbers(n)); } } public static int CalcAutomorphicNumbers(int n){ int count=0; for(int i=0;i<n;i++){ int sum=(int)Math.pow(i,2); String s=String.valueOf(sum); String s2=String.valueOf(i); String s1=s.substring(s2.length(),s.length()); if(s1.equals(s2)){ count++; } } return count; } } 方法2:直接用数字来操作 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(scanner.hasNext()){ int n = scanner.nextInt(); int count =0; for (int i = 0; i <=n; i++) { if (CalcAutomorphicNumbers(i)) { count++; } } System.out.println(count); } } //两数一直取余,分别比较两数最后一位的大小 public static boolean CalcAutomorphicNumbers(int n){ int num1 = (int) Math.pow(n, 2); while(n>0){ int a = n; int b = num1; n/=10; num1/=10; if(a!=b){ return false; } } return true; } }