2022牛客OI赛前集训营-普及组(第一场)-题目A:学习除法

这篇博客介绍了如何帮助不会除法的丹丹解决一个数学问题。给定一个整数n,需要找到让它变成质数的最少操作次数。思路是直接判断n是否为质数,若是则输出0,否则输出1。通过分解质因数,总能找到一个因子使n除以它后变为质数。注意避免因i*i超出int范围导致的错误。
摘要由CSDN通过智能技术生成

题面:

题目描述

鸡尾酒的学生丹丹学不会除法,有一天他遇到了这样的一个问题:给定一个整数 n ,你可以任选一个 n 的因子 x,然后将 n 除以 x。你可以进行任意次这样的 操作,直到 n 是一个质数为止。请问至少几次操作可以让 n 变成一个质数。 由于丹丹不会除法,更不知道因子是什么意思,所以他将这个问题交给你了,请你帮他解决这个问题。

输入描述

输入仅一行一个整数 n。

输出描述

输出一行一个答案。

思路:

这题也未免太简单了吧?

直接判断n是否是质数,如果是就输出0,不是就输出1。

如果n不是质数,n分解质因数一定=p1^a1*p2^a2*......*pk^ak。我们永远可以找到一个数,是的n除以这个数为质数。

注意事项:

这里不能这样写:

for(int i=2; i*i<=n; i++)
{
    if(a%i==0)
    {
        cout<<1;
        return 0;
    }
}
cout<<0;

因为这样i*i会超过int范围。 

代码如下代(A):

#include<iostream&
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值