题解 | #小美的因子查询#

小美的因子查询

https://www.nowcoder.com/practice/1870e68256794c6aa727c8bb71fd9737

解题思路

对于每个询问的数字x,我们需要判断它是否有偶数因子。
一个数如果有偶数因子,那么这个数一定能被2整除。
因此,我们只需要判断这个数是否能被2整除即可。

代码

#include <iostream>
using namespace std;

bool hasEvenFactor(int x) {
    return x % 2 == 0;
}

int main() {
    int T;
    cin >> T;
    while(T--) {
        int x;
        cin >> x;
        if(hasEvenFactor(x)) {
            cout << "YES" << endl;
        } else {
            cout << "NO" << endl;
        }
    }
    return 0;
}
import java.util.Scanner;

public class Main {
    public static boolean hasEvenFactor(int x) {
        return x % 2 == 0;
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        while(T-- > 0) {
            int x = sc.nextInt();
            if(hasEvenFactor(x)) {
                System.out.println("YES");
            } else {
                System.out.println("NO");
            }
        }
        sc.close();
    }
}
def has_even_factor(x):
    return x % 2 == 0

def main():
    T = int(input())
    for _ in range(T):
        x = int(input())
        print("YES" if has_even_factor(x) else "NO")

if __name__ == "__main__":
    main()

算法及复杂度

  • 算法:数学判断。通过判断数字是否能被2整除来确定是否存在偶数因子。
  • 时间复杂度:,其中T是询问次数,每次判断只需O(1)时间。
  • 空间复杂度:,只使用了常数级别的额外空间。
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务