P2669
import java.util.Scanner;
public class Main {
public static void main(String[]args) {
Scanner cin=new Scanner(System.in);
int num=cin.nextInt();//发放金币的天数
int sum=0,day=0,money=1;//定义变量 总和
for(int i=0;i<num;i++) {//定义i增加到天数
if(day==money) {//如果天数和金币相等
day=0;//天数为0(为此后几天 归零从新开始)
money++;//金币增加
}
day++;//天数增加
sum+=money;//金币的数量相加,求和
}
System.out.println(sum);
}
}
P5723
方法一
import java.util.*;
public class Main {
public static void main(String[]args) {
Scanner cin=new Scanner(System.in);
int L=cin.nextInt();
int num=0,n=0;
for(int i=2;num+i<=L;i++) {//外循环存放小于总和的质数
for(int j=2;j<=i;j++) {//从2开始进行增加判断
if(i%j==0&&i!=j) {//判断是不是质数
break;
}
if(i%j==0&&i==j) { //当相除为0且相等的时候
System.out.print(j+"\n");//输出符合条件的
num+=i;//和相加
n++;//数字个数增加
}
}
}
System.out.print(n);//输出共有几个
}
}
方法二
import java.util.Scanner;
public class Main{
public static void main(String[]args) {
Scanner cin=new Scanner(System.in);
int L=cin.nextInt();
int sum=0;
int a=0;
for(int i=2; ;i++) {//; ;算一个空白
if(f(i)==true) {
sum+=i;//和相加
if(sum>L) {//和大于输入的时候终止
break;
}else {
a++;
System.out.println(i);
}
}
}
System.out.print(a);
}
public static boolean f(int x) {
if(x<2)
return false;
if(x==2)
return true;
if(x%2==0)
return false;
for(int i=3;i*i<=x;i+=2) {
if(x%i==0)
return false;
}
return true;
}
}
im
P1217
import java.util.Scanner;
public class Main {
private static Scanner cin;
public static void main(String[]args) throws Exception {
cin=new Scanner(System.in);
int a=cin.nextInt();
int b=cin.nextInt();
for(int i=a;i<=b;i++) {
//如果可以被2,3,5整除,必然不满足条件
if(i!=2&&i!=3&&i!=5&&(i%2==0||i%3==0||i%5==0)) {
continue;
}
if(isPalindrome(i)) {
if(isPrime(i)) {
System.out.println(i);
}
}
}
}
private static boolean isPrime(int n) {
boolean ret=true;
if(n==1||n==2||n==3) {
ret=true;
}else {
for(int i=2;i<Math.sqrt(n);i++) {
if(n%i==0) {
ret=false;
break;
}
}
}
return ret;
}
private static boolean isPalindrome(int n) {
int x=n;
int y=0;
boolean ret=false;
while(x!=0){
y=y*10+x%10;
x=x/10;
}
if(y==n) {
ret=true;
}
return ret;
}
}