输入一个整数
。
输出一个整数,代表区间内完全数的个数。
1000
3
第一个完全数是
,因为
的约数有
,去除本身后,剩余约数之和为
。
第二个完全数是
,因为
的约数有
,去除本身后,剩余约数之和为
。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int n = in.nextInt();
int count=0;
for(int i=2;i<=n;i++){
if(isFactor(i)){
count++;
}
}
System.out.println(count);
}
}
//判断是不是真因子
public static boolean isFactor(int num){
int res=num-1;
for(int i=2;i<=Math.sqrt(num);i++){
if(num%i==0){
if(i==num/i){
res-=i;
}else{
res=res-i-num/i;
}
}
}
if(res!=0){
return false;
}else{
return true;
}
}
} import java.util.Scanner;
import java.util.HashSet;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int count = 0;
for (int i = 1; i <= n; i++) {
int sum = 0;
for (int j = 1; j <= i / 2; j++) {
if (i % j == 0 && i != j) {
sum += j;
}
}
if (sum == i) {
count++;
}
}
System.out.println(count);
}
}
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int number = in.nextInt();
int count = 0;
for (int i = 1; i <= number; i++) {
int sum = 0;
for (int j = 1; j <= i / 2; j++) {
if (i % j == 0) {
sum += j;
}
}
if (i == sum)
count++;
}
System.out.println(count);
}
} import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
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;
// 遍历小于等于n的数
for (int i = 1; i <= n; i++) {
int sum = 0;
// 计算因数之和
for (int j = 1; j <= i / 2 ; j++) {
if (i % j == 0) {
sum += j;
}
}
//因数之和等于本身+1
if (sum == i) {
count++;
}
}
System.out.println(count);
}
}
} import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int num = in.nextInt();
int count = 0;
for(int i =2; i<=num; i++) { //遍历n
//求i的约数,存于数组中
int arr[] = new int[i/2];
for(int j=1,n=0; j<=i/2; j++) {
if(i%j == 0) {
arr[n] = j;
n++;
}
}
//遍历数组求和,判断是否==i
int sum = 0;
for(int x = 0; x < arr.length; x++) {
sum = sum + arr[x];
}
if(sum == i) {
count++;
}
}
System.out.println(count);
}
}
} import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int a = in.nextInt();
if(a < 6) System.out.println("0");
else if(a<28) System.out.println("1");
else if(a<496) System.out.println("2");
else if(a<8182) System.out.println("3");
else System.out.println("4");
}
}
} import java.util.*;
import java.util.stream.Collectors;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int total = in.nextInt();
List<Integer> totalList = new ArrayList<>(total);
for (int i = 1; i < total; i++) {
totalList.add(i);
}
List<Integer> resultList = totalList.stream().map(item-> {
List<Integer> yues = new ArrayList<>(item);
for (int i = 1; i < item; i++) {
if (item % i == 0) {
yues.add(i);
}
}
if (yues.stream().reduce(0, Integer::sum) == item) {
return item;
} else {
return 0;
}
}).filter(item -> item != 0).collect(Collectors.toList());
System.out.println(resultList.size() + 1);
}
} import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while ((line = br.readLine()) != null) {
int number = Integer.parseInt(line);
int count = 0;
for (int i = 2; i <= number; i++) {
int sum = 0;
for (int j = 1; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
sum += j;
if (i / j != i) {
sum += i / j;
}
}
}
if (i == sum) {
count++;
}
}
System.out.println(count);
}
}
} import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int num=in.nextInt();
int sum=0;
for(int i=1;i<=num;i++){
if(getResult(i)==i){
sum++;
}
}
System.out.print(sum);
}
public static int getResult(int num){
int sum=0;
for(int i=1;i<num;i++){
if(num%i==0){
sum+=i;
}
}
return sum;
}
} import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int count = 0;
for(int i = 2; i <= n; i++){
if(isPerfect(i)) count++;
}
System.out.print(count);
}
public static boolean isPerfect(int num){
int sum = 0;
for(int i = 2; i*i <= num ; i++){
if(num % i == 0){
sum += i;
if(num / i != i){
sum += (num/i);
}
}
}
sum++;
return sum == num;
}
}
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int n = in.nextInt();
int count=0;
for(int i=2;i<=n;i++){
if(isPerfect(i)) count++;
}
System.out.println(count);
}
}
public static boolean isPerfect(int num){
ArrayList<Integer> list = new ArrayList<>();
for(int k=1;k<=num/2;k++){
if(num%k==0){
list.add(k);
}
}
int sum=0;
for(int a:list){
sum+=a;
}
if(sum==num) return true;
return false;
}
} import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int a = in.nextInt();
int count = 0;
for (int i = 1; i <= a; i++) {
if (wanquanshu(i)) {
count++;
}
}
System.out.println(count);
}
}
private static boolean wanquanshu(int a) {
int sum = 0;
int len = a / 2;
for (int i = 1; i <= len; i++) {
if (a % i == 0) {
sum += i;
}
}
if (sum == a)
return true;
else
return false;
}
} /**
* @author YXQ
* @create 2022/8/22 17:05
*/
import java.util.Scanner;
/**
* HJ56 完全数计算
* 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。
* 它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
* 例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
* 输入n,请输出n以内(含n)完全数的个数。
*
* 输入描述:
* 输入一个数字n
* 输出描述:
* 输出不超过n的完全数的个数
*
*输入:
* 1000
* 输出:
* 3
*/
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
System.out.println(getPefectNum(n));
}
public static int getPefectNum(int n){
int res=0;
if(n==1)return 0;
for(int i=2;i<=n;i++){
int sum=1;
for(int j=2;j<=Math.sqrt(i);j++){
if(i%j==0){
// 注意不要把开平方的两个数都加进来了
if(Math.abs(Math.sqrt(i)-j)<Double.MIN_VALUE){
sum+=(i/j);
}else{
sum+=(i/j+j);
}
}
}
if(sum==i)res++;
}
return res;
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
int count = 0;
for(int i = 1; i <= num; i++){
if(isPerfectNumber(i)){
count++;
}
}
System.out.println(count);
}
public static boolean isPerfectNumber(int num){
int sum = 0;
for(int i = 1; i < num; i++){
if(num % i == 0){
sum += i;
}
}
return sum == num;
}
} import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int br = Integer.parseInt(scanner.nextLine());
int count = 0;
int sum = 0;
for(int i = 0;;i++){
boolean ifContinue = false;
sum += Math.pow(2, i);
if (sum * Math.pow(2, i) > br){
break;
}
for(int j = 2; j < Math.sqrt(sum) + 1; j++){
if(sum % j == 0){
ifContinue = true;
break;
}
}
if(ifContinue ){
continue;
}
count++;
}
System.out.println(count - 1);
}
} import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int num = sc.nextInt();
int count = 0;
for (int i = 2; i <= num; i++) {
int temp = 0;
List<Integer> array = new ArrayList<>();
for (int j = 1; j < i; j++) {
if (i % j == 0) {
array.add(j);
}
}
for (Integer t : array) {
temp += t;
}
if (temp == i) {
count += 1;
}
}
System.out.println(count);
}
}
}