Skip to main content
We’ve updated our Terms of Service. A new AI Addendum clarifies how Stack Overflow utilizes AI interactions.
Code Golf

Return to Answer

Commonmark migration
Source Link

#Java, 310 Bytes

Java, 310 Bytes

#Java, 310 Bytes

Java, 310 Bytes

Source Link
ankh-morpork
  • 1.5k
  • 1
  • 12
  • 15

#Java, 310 Bytes

class U{int[] p;U(int e){p=new int[(int)4e9];for(int i=1,c=0;c<e;i++)if(u(i)>0){System.out.println(i);c++;}}int p(int n){if(p[n]!=0)return p[n];int i,s=1;for(i=2;i<=n-1;i++)s+=n%i==0?i+(n/i!=i?n/i:0):0;return(p[n]=s);}int u(int n){if(n==1)return 0;for(int i=2;i<=(n-1)*(n-1);i++)if(p(i)==n)return 0;return 1;}}

Golfed as well as I could but, I was more interested in making sure it ran in reasonable time. The unglofed version is probably more interesting

public class Untouchable {
 int[] properDivisorSumMap;
 
 
 public Untouchable(int estimatedMaxium){
 properDivisorSumMap = new int[(estimatedMaxium-1)*(estimatedMaxium-1)];
 }
 
 
 public int properDivisorSum(int n){
 if(properDivisorSumMap[n] != 0){
 return properDivisorSumMap[n];
 }
 
 int sum = 1;
 for(int i=2;i<=(int)Math.sqrt(n);i++){
 if(n%i==0){
 sum+=i;
 if(n/i != i){
 sum+=n/i;
 }
 }
 }
 properDivisorSumMap[n] = sum;
 return sum;
 }
 
 
 public boolean untouchable(int n){
 if(n==1){
 return false;
 }
 for(int i=2;i<=(n-1)*(n-1);i++){
 if(properDivisorSum(i) == n){
 return false;
 }
 } 
 return true;
 }
 
 public static void main(String[] args){
 Untouchable test = new Untouchable(8480);
 
 int elements = Integer.parseInt(args[0]);
 
 for(int i=1,count=0;count < elements;i++){
 if(test.untouchable(i)){
 System.out.printf("%4d: %4d%n",count,i);
 count++;
 }
 }
 }
}

AltStyle によって変換されたページ (->オリジナル) /