fork download
  1. from math import floor, sqrt
  2.  
  3. def sieve(n):
  4. bs = [True] * (n + 1); bs[0] = bs[1] = False
  5. for m in range (2, floor(sqrt(n)) + 1):
  6. if bs[m]:
  7. for p in range (m * m, n + 1, m):
  8. bs[p] = False
  9. return bs
  10.  
  11. n = 35
  12.  
  13. matr = [[' '] * n for _ in range (0, n)]
  14. bs = sieve(n * n)
  15. m = n * n; k = n; i = 0; j = -1; ii = 0; jj = 1
  16. while k > 0:
  17. for _ in range (0, k):
  18. i += ii; j += jj;
  19. if bs[m]:
  20. matr[i][j] = '*'
  21. m -= 1
  22. ii, jj = jj, -ii; k -= abs(ii)
  23.  
  24. for i in range (0, n):
  25. print(' '.join(matr[i]))
Success #stdin #stdout 0.03s 9440KB
stdin
Standard input is empty
stdout
    *           *       *                       *               *    
      *                                   *           *   *          
*                   *           *           *       *                
          *                   *   *       *   *                      
*           *               *                   *               *   *
                      *   *       *           *           *   *      
                        *   *                       *       *        
  *   *           *           *   *                   *   *   *   *  
*           *       *           *       *   *                        
                              *   *       *           *           *  
        *               *                       *       *           *
  *               *       *       *           *   *                  
                *                       *                            
      *       *   *           *           *       *       *          
*   *       *       *   *       *       *   *       *   *       *    
                                  *       *                          
                                    *   *   *               *        
  *   *   *       *   *   *   * *     *       *                      
    *                       *   *   *                                
              *               *       *   *   *   *   *   *   *   *  
*   *   *           *   *   *           *   *       *               *
                      *       *   *                                  
        *   *       *               *       *   *       *       *    
  *       *       *           *   *                                  
    *                               *   *       *           *        
      *       *   *                   *           *               *  
        *   *   *       *   *       *                   *       *    
                  *           *               *       *           *  
*           *       *                       *                       *
                  *           *           *   *           *   *      
            *           *   *                       *       *        
  *   *       *               *       *                              
                *       *   *       *                                
          *                       *       *           *   *          
*           *                                           *   *