找到d方阵号?

时间:2011-02-14 11:37:37

标签: c

int n=16;

for(i=0;i<=n;i++) {
  if(n/i==i) {
    printf("its a square no");

  }
  else
    printf("not a square no.");

我想打印一个声明,既不是声明也不是声明....但输出不是素数3次而且没有时间再次准备......

帮帮我

输出n = 16且n = 15

2 个答案:

答案 0 :(得分:3)

在你的代码中,你还要测试余数为0:

((n/i==i) && (n%i==0))

修改

正如Sjoerd指出的那样,我特别愚蠢,你也可以只测试i*i==n

bool perfect(int n)
{
    for (int i=1; i<=n; i++)
        if (i*i==n)
            return true;
    return false;
}

我意识到这是C ++,但你得到了图片!

答案 1 :(得分:2)

也许

int n=16;
for(i=0;1<=n;i++)

应该是

float n=16.0;
for(float i=1.0;i<=n;i++)

i = 1.0,因为你不应该除以零

你成功时可以使用found_square = 1,如果n是一个正方形,可能会使用另一个if / else语句来打印,具体取决于found_square的值。

您也可以在成功案例后添加break命令。一旦成功,就不需要在for循环中继续。