打印非平方数的程序

写一个程序来打印第一个n个非平方数(非完美平方)。

null

例如:

Input : 5Output : 2 3 5 6 7Input : 10Output : 2 3 5 6 7 8 10 11 12 13

A. 天真法 是遍历从1到n的所有数字。对于每个数字,检查它是否为完全平方。如果不是一个完美的正方形,打印出来。

C++

// CPP program to print first n
// non-square numbers.
#include <bits/stdc++.h>
using namespace std;
// Function to check perfect square
bool isPerfectSquare( int n)
{
if (n < 0)
return false ;
int root = round( sqrt (n)));
return n == root * root;
}
// function to print all
// non square number
void printnonsquare( int n)
{
// variable which stores the
// count
int count = 0;
for ( int i = 1; count < n; ++i) {
// not perfect square
if (!isPerfectSquare(i)) {
cout << i << " " ;
count++;
}
}
}
int main()
{
int n = 10;
printnonsquare(n);
return 0;
}


JAVA

// Java program to print first n
// non-square numbers.
import java.io.*;
import java.math.*;
class GFG {
// Function to check perfect square
static boolean isPerfectSquare( int n)
{
if (n < 0 )
return false ;
int root = Math.round(( int )(Math.sqrt(n)));
return n == root * root;
}
// function to print all
// non square number
static void printnonsquare( int n)
{
// variable which stores the
// count
int count = 0 ;
for ( int i = 1 ; count < n; ++i) {
// not perfect square
if (!isPerfectSquare(i)) {
System.out.print(i + " " );
count++;
}
}
}
// Driver code
public static void main(String args[])
{
int n = 10 ;
printnonsquare(n);
}
}
/* This code is contributed by Nikita Tiwari.*/


Python3

# Python 3 program to print
# first n non-square numbers.
import math
# Function to check perfect
# square
def isPerfectSquare(n) :
if (n < 0 ) :
return False
root = round (math.sqrt(n))
return (n = = root * root)
# function to print all
# non square number
def printnonsquare(n) :
# variable which stores the
# count
count = 0
i = 1
while (count < n) :
# Not perfect square
if (isPerfectSquare(i) = = False ) :
print (i, end = " " )
count = count + 1
i = i + 1
n = 10
printnonsquare(n)
# This code is contributed by Nikita Tiwari.


C#

// C# program to print first n
// non-square numbers.
using System;
class GFG
{
// Function to check perfect square
static bool isPerfectSquare( int n)
{
if (n < 0)
return false ;
double root = Math.Round(( double )(Math.Sqrt(n)));
return n == root * root;
}
// function to print all
// non square number
static void printnonsquare( int n)
{
// variable which stores the
// count
int count = 0;
for ( int i = 1; count < n; ++i)
{
// not perfect square
if (!isPerfectSquare(i))
{
Console.Write(i + " " );
count++;
}
}
}
// Driver code
static public void Main ()
{
int n = 10;
printnonsquare(n);
}
}
// This code is contributed by jit_t


PHP

<?php
// CPP program to print first
// n non-square numbers.
// Function to check
// perfect square
function isPerfectSquare( $n )
{
if ( $n < 0)
return false;
$root = round (sqrt( $n ));
return $n == $root * $root ;
}
// function to print all
// non square number
function printnonsquare( $n )
{
// variable which
// stores the count
$count = 0;
for ( $i = 1; $count < $n ; ++ $i )
{
// not perfect square
if (!isPerfectSquare( $i ))
{
echo $i . " " ;
$count ++;
}
}
}
// Driver Code
$n = 10;
printnonsquare( $n );
// This code is contributed by mits.
?>


Javascript

<script>
// JavaScript program to print first n
// non-square numbers.
// Function to check perfect square
function isPerfectSquare(n)
{
if (n < 0)
return false ;
let root = Math.round((Math.sqrt(n)));
return n == root * root;
}
// function to print all
// non square number
function printnonsquare(n)
{
// variable which stores the
// count
let count = 0;
for (let i = 1; count < n; ++i) {
// not perfect square
if (!isPerfectSquare(i)) {
document.write(i + " " );
count++;
}
}
}
// Driver code
let n = 10;
printnonsquare(n);
</script>


输出:

2 3 5 6 7 8 10 11 12 13

我们可以使用下面的公式来改进上述算法 F(n)=n+楼层(1/2+sqrt(n)) 通过应用这个函数,我们得到n个非平方数。 公式的来源和证明: 库拉

下面是上述方法的实现。

C++

// CPP program to print first n
// non square number
#include <bits/stdc++.h>
// Returns n-th non-square number.
int nonsquare( int n)
{
return n + ( int )(0.5 + sqrt (n));
}
void printNonSquare( int n)
{
// loop to print non squares
// below n
for ( int i = 1; i <= n; i++)
printf ( "%d " , nonsquare(i));
}
int main()
{
int n = 10;
printNonSquare(n);
return 0;
}


JAVA

// Java program to print first n
// non-square numbers.
import java.io.*;
import java.math.*;
class GFG {
// Returns n-th non-square number.
static int nonsquare( int n)
{
return n + ( int )( 0.5 + (Math.sqrt(n)));
}
static void printNonSquare( int n)
{
// loop to print non squares
// below n
for ( int i = 1 ; i <= n; i++)
System.out.print(nonsquare(i)+ " " );
}
// Driver code
public static void main(String args[])
{
int n = 10 ;
printNonSquare(n);
}
}
/* This code is contributed by Nikita Tiwari.*/


Python3

# Python 3 program to print
# first n non-square numbers.
import math
# Returns n-th non-square
# number.
def nonsquare(n) :
return n + ( int )( 0.5 + math.sqrt(n))
def printNonSquare(n) :
# loop to print non
# squares below n
for i in range ( 1 , n + 1 ) :
print (nonsquare(i), end = " " )
n = 10
printNonSquare(n)
# This code is contributed by Nikita Tiwari.


C#

// C# program to print first n
// non-square numbers.
using System;
class GFG
{
// Returns n-th non-square number.
static int nonsquare( int n)
{
return n + ( int )(0.5 + (Math.Sqrt(n)));
}
static void printNonSquare( int n)
{
// loop to print non squares
// below n
for ( int i = 1; i <= n; i++)
Console.Write(nonsquare(i)+ " " );
}
// Driver code
public static void Main()
{
int n = 10;
printNonSquare(n);
}
}
// This code is contributed
// by Akanksha Rai(Abby_akku)


PHP

<?php
// PHP program to print first n
// non square number
// Returns n-th non-square number.
function nonsquare( $n )
{
return $n + (int)(0.5 + sqrt( $n ));
}
function printNonSquare( $n )
{
// loop to print non squares
// below n
for ( $i = 1; $i <= $n ; $i ++)
printf(nonsquare( $i ) . " " );
}
// Driver Code
$n = 10;
printNonSquare( $n );
// This code is contributed by mits
?>


Javascript

<script>
// Javascript program to print first n
// non square number
// Returns n-th non-square number.
function nonsquare(n)
{
return n + parseInt(0.5 + Math.sqrt(n));
}
function printNonSquare(n)
{
// loop to print non squares
// below n
for (let i = 1; i <= n; i++)
document.write(nonsquare(i) + " " );
}
// Driver Code
let n = 10;
printNonSquare(n);
// This code is contributed by gfgking.
</script>


输出:

2 3 5 6 7 8 10 11 12 13

替代方案 基于两个正方形之间的非正方形数始终是偶数这一事实。 两个连续数字k和k+1之间的非平方数的计数为 =(k+1) 2. –k 2. + 1 =2k 1-4、4-9、9-16……之间的非平方数分别为2、4、6。这些是偶数。

以下是上述方法的实施情况。

C++

// CPP program to print first n
// non square number
#include <assert.h>
#include <math.h>
#include <stdio.h>
void printNonSquare( int n)
{
int curr_count = 2, num = 2, count = 0;
while (count < n) {
// Print curr_count numbers. curr_count
// is current gap between two square numbers.
for ( int i = 0; i < curr_count &&
count < n; i++) {
printf ( "%d " , num);
count++;
num++;
}
// skip a square number.
num++;
// Count of next non-square numbers
// is next even number.
curr_count += 2;
}
}
int main()
{
int n = 10;
printNonSquare(n);
return 0;
}


JAVA

// Java program to print first n
// non-square numbers.
import java.io.*;
import java.math.*;
class GFG {
static void printNonSquare( int n)
{
int curr_count = 2 , num = 2 , count = 0 ;
while (count < n) {
// Print curr_count numbers. curr_count is
//  current gap between two square numbers.
for ( int i = 0 ; i < curr_count &&
count < n; i++) {
System.out.print( num+ " " );
count++;
num++;
}
// skip a square number.
num++;
// Count of next non-square
// numbers is next even number.
curr_count += 2 ;
}
}
// Driver code
public static void main(String args[])
{
int n = 10 ;
printNonSquare(n);
}
}
/* This code is contributed by Nikita Tiwari.*/


Python3

# Python 3 program to print
# first n non-square numbers.
import math
# Returns n-th non-square
# number.
def printNonSquare(n) :
curr_count = 2
num = 2
count = 0
while (count < n) :
# Print curr_count numbers.
# curr_count is current gap
# between two square numbers.
i = 0
while (i < curr_count and count < n) :
print (num, end = " " )
count = count + 1
num = num + 1
i = i + 1
# skip a square number.
num = num + 1
# Count of next non-square
# numbers is next even number.
curr_count = curr_count + 2
n = 10
printNonSquare(n)
# This code is contributed by Nikita Tiwari.


C#

// C# program to print
// first n non-square
// numbers.
using System;
class GFG
{
static void printNonSquare( int n)
{
int curr_count = 2,
num = 2, count = 0;
while (count < n)
{
// Print curr_count
// numbers. curr_count
// is current gap between
// two square numbers.
for ( int i = 0; i < curr_count &&
count < n; i++)
{
Console.Write(num + " " );
count++;
num++;
}
// skip a square number.
num++;
// Count of next
// non-square numbers
// is next even number.
curr_count += 2;
}
}
// Driver code
static public void Main ()
{
int n = 10;
printNonSquare(n);
}
}
// This code is contributed
// by akt_mit


PHP

<?php
// PHP program to print first n
// non-square numbers.
function printNonSquare( $n )
{
$curr_count = 2; $num = 2; $count = 0;
while ( $count < $n )
{
// Print curr_count numbers. curr_count is
// current gap between two square numbers.
for ( $i = 0; $i < $curr_count &&
$count < $n ; $i ++)
{
echo ( $num . " " );
$count ++;
$num ++;
}
// skip a square number.
$num ++;
// Count of next non-square
// numbers is next even number.
$curr_count += 2;
}
}
// Driver code
$n = 10;
printNonSquare( $n );
// This code is contributed by Mukul Singh.
?>


Javascript

<script>
// Javascript program to print first
// n non-square numbers.
function printNonSquare(n)
{
let curr_count = 2, num = 2, count = 0;
while (count < n)
{
// Print curr_count
// numbers. curr_count
// is current gap between
// two square numbers.
for (let i = 0;
i < curr_count && count < n;
i++)
{
document.write(num + " " );
count++;
num++;
}
// Skip a square number.
num++;
// Count of next
// non-square numbers
// is next even number.
curr_count += 2;
}
}
// Driver code
let n = 10;
printNonSquare(n);
// This code is contributed by decode2207
</script>


输出:

2 3 5 6 7 8 10 11 12 13

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享