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
答案 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循环中继续。