java – Meu método volta com resultado nulo toda vez que envio para um loop

import java.util.*;

class Main {
  public static void main(String() args) {
    Scanner leituraTeclado = new Scanner(System.in);
    int num = 0;

    System.out.println("nInsira um número:");
    num = leituraTeclado.nextInt();

    perfeito(num);
    int soma = perfeito(num);

    if(soma == num){
      System.out.println("nO número informado é perfeito!");
    }
    else{
      System.out.println("nO número informado não é perfeito!");
    }
  }

  public static int perfeito(int num) {
    int soma = 0;

    for(int n = 0;n < num;++n){
      if(num % 'n' == 0) {
        soma = (soma + num);
      }
    }
    return soma;
  }
}

Ele roda o programa normal, não dá nenhum erro, porém o valor só volta igual a ‘0’, o problema é no loop? O que posso fazer pra contornar esse erro?
Ah, além disso, todos os meus outros programas envolvendo métodos funcionaram normal, só os que envolvem o loop que tem dado esse problema.