问题标题: 酷町堂:1797   判断质数

0
0
已解决
潮文馨
潮文馨
新手光能
新手光能

题目链接: 酷町堂:1797

1797   判断质数

经验值:800 时间限制:1000毫秒 内存限制:128MB

题目描述 Description

定义质数为:因数只有1和其本身的数

对于 n 组询问,试判断每个数是否为质数。

输入描述 Input Description

第一行:正整数 n,表示有 n 组询问
接下来n行:每行一个正整数 m,表示询问 m 是否为质数,是则输出 “yes”,否则输出 “no”。

输出描述 Output Description

n行,每行一个字符串 “yes” 或者 “no”

样例输入 Sample Input

3 1 17 51

样例输出 Sample Output

no yes no

数据范围及提示 Data Size & Hint

n ≤ 10^3 , 1 < m ≤ 10^10

80分超时代码↓
bool f(int x){
    if(x==1){
        return false;
    }
    if(x==2){
        return true; 
    } 
    for(int i=2;i<x;i++){
        if(x%i==0){
            return false;
        }
    }
    return true;
}
int main()

    int m,n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>m;
        if(f(m)==true){
            cout<<"yes";
        }else{
            cout<<"no";
        }
    }
  求思路,急


0
已采纳
丁博扬
丁博扬
中级天翼
中级天翼

你将函数里的for循环从2到sqrt(x)遍历

这样就会AC了

0
朱小川
朱小川
缔造者
缔造者

函数不对

朱小川在2021-12-17 18:41:29追加了内容

只要一个if+for

我要回答