OJ19

#include <iostream>

#include <iomanip>

using namespace std;

class Complex

{

public:

    Complex();

    Complex(double r,double i);

    double get_real();

    double get_imag();

    void display();

private:

    double real;

    double imag;

};
double Complex:: get_real()
{
    return real;
}
double Complex ::get_imag()
{
    return imag;
}

Complex::Complex()
{real=0;
imag=0;
}
Complex::Complex(double r,double i)
{
   real=r;
   imag=i;


}

void Complex::display()
{
    cout<<"("<<real<<","<<imag<<"i)"<<endl;

}

Complex operator+(Complex &c1,Complex &c2)
{
    return  Complex(c1.get_real()+c2.get_real(),c1.get_imag()+c2.get_imag());


}

//主函数已给定如下,提交时不需要包含,会自动添加到程序尾部

 

/* C++代码 */

 

int main()

{

    double real,imag;

    cin>>real>>imag;

    Complex c1(real,imag);

    cin>>real>>imag;

    Complex c2(real,imag);

    Complex c3=c1+c2;

    cout<<setiosflags(ios::fixed);

    cout<<setprecision(2);

    c3.display();

    return 0;

}

<think>好的,用户想找关于素数判定的在线评测题目或练习题。首先,我需要回忆常见的OJ平台有哪些,比如LeetCode、牛客网、洛谷等,这些平台通常会有素数相关的题目。然后,要确保这些平台确实有相关题目,可能需要通过引用中的内容来支持,但用户的引用里提到的华为OD机试、C语言OJ题、内大OJ练习题等,可能没有直接提到素数题目,不过可以推测这些平台可能有相关题目。 接下来,我需要列出具体的题目例子,比如判断是否为素数、区间内素数个数、特定形式的素数等,这些都是常见的题型。同时,用户可能需要了解如何高效判断素数,比如埃拉托斯特尼筛法,或者处理大数时的优化方法,比如米勒-拉宾测试。这些算法通常在OJ题中会用到。 然后,要考虑用户可能的水平,如果是初学者,可能需要推荐基础题目,而进阶用户可能需要更复杂的题目。因此,需要分层次推荐。同时,结合引用中的内容,比如华为OD机试的题目可能更偏向算法应用,可以建议用户关注该专栏获取最新题目。 另外,用户提到的在线评测系统可能需要具体的平台链接或名称,但根据引用内容,可能无法直接提供外部链接,因此需要建议用户到知名OJ平台搜索相关题目。同时,注意使用中文回答,保持结构清晰,分点说明,并添加相关问题供用户进一步学习。 最后,确保所有数学表达式使用正确的LaTeX格式,如$n$,筛法的时间复杂度$O(n \log \log n)$等,并检查是否有引用需要标注,比如引用中的华为OD机试可以作为参考资源。</think>### 素数判定的在线评测题目及练习指南 #### 常见OJ平台及题目推荐 1. **华为OD机试题库** 包含算法题和编程题,涉及素数判定的变种题目,例如: - 判断区间内素数的个数 - 满足特定条件的素数组合(如素数对、回文素数) 建议关注[华为OD机试E卷目录](^1)获取最新题目。 2. **C语言OJ练习题** 适合基础训练,例如: - 输入一个整数,判断是否为素数 - 输出前$n$个素数 参考代码模板类似冒泡排序的循环结构[^2],但需修改核心逻辑为素数判定。 3. **内大OJ练习题** 包含循环控制与条件判断的综合应用,例如: - 筛选区间$[a,b]$内的素数并统计数量 - 计算素数的特殊性质(如素数和、最大间隔) #### 典型题目类型 1. **基础题** - **题目**:输入整数$n$,判断其是否为素数 **示例输入**:`17` **示例输出**:`Yes` **核心逻辑**:遍历$2$到$\sqrt{n}$,若存在能整除的数则非素数。 2. **中等题** - **题目**:输出区间$[L,R]$内所有素数的和 **示例输入**:`10 20` **示例输出**:`60`(对应素数11+13+17+19) **优化方法**:使用筛法(如埃拉托斯特尼筛)预处理。 3. **进阶题** - **题目**:判断大数$n$(如$n \leq 10^{18}$)是否为素数 **解决方法**:使用**米勒-拉宾素性测试**(概率算法)或确定性算法优化。 #### 实现示例(Python) ```python # 基础素数判定 def is_prime(n): if n <= 1: return False for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True # 筛法求区间素数 def sieve(l, r): is_prime = [True] * (r + 1) is_prime[0] = is_prime[1] = False for i in range(2, int(r**0.5) + 1): if is_prime[i]: for j in range(i*i, r+1, i): is_prime[j] = False return [x for x in range(l, r+1) if is_prime[x]] ``` #### 性能优化技巧 - **筛法时间复杂度**:埃拉托斯特尼筛为$O(n \log \log n)$,适合预处理[^3]。 - **大数判定**:米勒-拉宾测试通过多次随机选择基数降低误判率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值