dabocaiqq
2020-06-01 17:25
采纳率: 66.6%
浏览 374

高分悬赏:Java语言怎么输出全部1000以内的完全平方数

高分悬赏:Java语言怎么输出全部1000以内的完全平方数
高分悬赏:Java语言怎么输出全部1000以内的完全平方数

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 已采纳

    首先,需要知道完全平方数的定义:

    完全平方指用一个整数乘以自己例如1*1,2*2,3*3等,依此类推。若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。
    

    根据概念,只要存在一个整数m,使得m*m的值为n,那么n就是完全平方数了。于是只需要对可能的m进行遍历,即可得到n是否为完全平方数的结论了。

    int main(){    
    int n,m;    scanf("%d",&n);//输入n值。    
    m = 1; //初始为最小值。   
    while(m*m<n) m++;//m自加,一直到m*m>=n时退出循环。    //此时有两种可能,一种m*m与n相等,则为完全平方数;另一种则是m*m>n, 此时不存在使得m*m=n成立的m值,n不是完全平方数。   
    if(m*m==n) printf("%d 是完全平方数\n", n);   
    else printf("%d 不是完全平方数\n", n);//输出结果。    
    return 0;
    }
    
    点赞 评论
  • _知道者丶 2020-06-01 17:26

    import java.util.HashSet;
    import java.util.Set;
    public class Main {
    public static void main(String[] args) {
    for (int i = 2; i < 1000; i++) {
    check(i);
    }
    }
    private static void check(int i) {
    Set set = new HashSet();
    set.add(1);
    for (int j = 2, l = (int) Math.sqrt(i); j <= l; j++) {
    if (i % j == 0) {
    set.add(j);
    set.add(i / j);

    点赞 评论
  • qybao 2020-06-02 09:30

    直接自然数的乘方小于1000就可以了

    public class Sample {
        public static void main(String[] args) {
            for (int i=2, s=i*i; s<1000; i++, s=i*i) {
                System.out.println(s);
            }
        }
    }
    
    点赞 评论

相关推荐 更多相似问题