2019.2.14 t1 最大公约数

代码:

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <cstring>
 4 #include <algorithm>
 5 #include <cmath>
 6 #include <cctype>
 7 #include <vector>
 8 using namespace std;
 9
10 #define LL long long
11 #define res register long long
12 inline LL read()
13 {
14     LL x(0),f(1); char ch;
15     while(!isdigit(ch=getchar())) if(ch==‘-‘) f=-1;
16     while(isdigit(ch)) x=x*10+ch-‘0‘,ch=getchar();
17     return f*x;
18 }
19 LL s[10000000],tot;
20 LL b[10000000],cnt;
21 inline void pre_work(LL n)
22 {
23     //质因数
24     LL tmp=n;
25     for(res i=2 ; i*i<=n ; i++)
26     {
27         if(n%i==0) s[++tot]=i;
28         while(n%i==0) n/=i;
29     }
30     if(n>1) s[++tot]=n;
31     //约数
32     for(res i=1 ; i*i<=tmp ; i++)
33         if(tmp%i==0)
34         {
35             b[++cnt]=i;
36             if(i!=tmp/i) b[++cnt]=tmp/i;
37         }
38 }
39
40 LL phi(LL n)
41 {
42     LL ans=n;
43     for(res i=1 ; i<=tot ; i++)
44     {
45         if(n%s[i]==0)
46             ans=ans/s[i]*(s[i]-1);
47     }
48     return ans;
49 }
50
51 int main()
52 {
53 //    freopen("gcd.in","r",stdin);
54 //    freopen("gcd.out","w",stdout);
55     LL n;
56     n=read();
57     pre_work(n);
58     sort(b+1,b+cnt+1);
59     for(res i=1 ; i<=cnt ; i++)
60     {
61         cout<<b[i]<<" ";
62         cout<<phi(n/b[i])<<endl;
63     }
64     return 0;
65 }

原文地址:https://www.cnblogs.com/wmq12138/p/10380890.html

时间: 2024-10-02 02:12:06

2019.2.14 t1 最大公约数的相关文章

【2019.8.14 慈溪模拟赛 T1】我不是!我没有!别瞎说啊!(notme)(BFS+DP)

\(IDA^*\) 说实话,这道题我一开始没想出正解,于是写了一个\(IDA^*\)... 但神奇的是,这个\(IDA^*\)居然连字符串长度分别为\(2500,4000\)的数据都跑得飞快,不过数据发下来之后我测了一下只有45分. 就在不断优化\(IDA^*\)的过程中,我突然就想出了正解的做法,看来以后遇事不决先暴力. \(DP\)求解第一个询问 考虑一个\(DP\),我们设\(f_{i,j}\)表示当前在第一个字符串中是第\(i\)位,第二个字符串中是第\(j\)位的最小步数. 若记录\(

【2019.8.14】2019QB学堂DP图论班第一次考试 Problem C

Problem C Problem Description Tarzan 非常烦数轴因为数轴上的题总是难度非常大.不过他非常喜欢线段,因为有关线 段的题总是不难,讽刺的是在一个数轴上有 n 个线段,Tarzan 希望自己喜欢的东西和讨厌的 东西不在一起,所以他要把这些线段分多次带走,每一次带走一组,最多能带走 k 次.其实 就是要把这些线段分成至多 k 组,每次带走一组,问题远没有那么简单,tarzan 还希望每次 选择的线段组都很有相似性,我们定义一组线段的相似性是组内线段交集的长度,我们现在

2019.12.14 递归类型题

/** * DiGui.java * com.DuiXiang * * Function: TODO * * ver date author * ────────────────────────────────── * 2019年12月14日 17671 * * Copyright (c) 2019, TNT All Rights Reserved.*/ package com.DuiXiang;/** * ClassName:DiGui * Function: TODO ADD FUNCTIO

服创大赛讨论-2019.1.14

任务分工: 我:做APP 张:语音平台与数据库的连接 陆:搜集健康养生资料,分类,建立数据库 目标: 天猫精灵要实现的功能:主动功能.被动功能 主动功能: 例子: 问:冬天皮肤干燥怎么回事? 答:原因+解决方案 解决方案包括:食疗.药物.动作(按摩.保健操等) 被动功能:例子:我爱记歌词 天猫精灵主动输出健康养生的知识,天猫精灵与人进行互动,一方面有趣味性:另一方面学到不少健康养生知识,起到预防的作用. 例如:我会看病 已完成的部分: 我:安装好了安卓环境,能够写一个简单的APP,并能用手机下载

2019.2.14 企业战略 基础班

1.企业外部环境分析(政治环境 优先考虑 .经济环境.技术环境.社会文化环境)2.行业环境分析(潜在进入者.替代品.供应商讨价还价的能力.消费者讨价还价的能力.行业中现有竞争者之间的竞争).3.影响潜在进入者进入的障碍(规模经济.产品差异化.资本需求.转换成本.政府政策).4.竞争对手分析的主要目的(预测反击行动.预测防御能力.选择战场).5.企业战略与组织文化.(1)文化为战略提供成功的动力.企业的行为是受到企业文化深刻影响的,因此,企业战略的制定和实施也要考虑企业文化的作用.当一个企业组织自

2019.2.14 t3 车辆销售

用算法求最大生成树,在并查集合并时,把原本的一个根连向另一个 根改成两个根都连向一个新建的节点,并把当前正在处理的边的权值赋给这个新 节点做点权.这样形成的结构会是一棵树. 一个点的答案大致上是树的根到自己的路径上,相邻两个节点的子树叶节点 数的平方和.需要注意的是父子两个节点权值相同的情况,这个部分需要特殊处理. 1 #include <cstdio> 2 #include <iostream> 3 #include <cstring> 4 #include <

PAT 甲级 A1082 (2019/02/14) NULL(12/25)

1 #include<cstdio> 2 #include<cstring> 3 char strnumber[16][5] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu", "Ge&quo

PAT 甲级 A1082 (2019/02/14)13/25

#include<cstdio> #include<cstring> char strnumber[16][5] = { "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu", "Ge", &

2019.4.14 ------ 新浪微博批量删除微博脚本

1 'use strict'; 2 var s = document.createElement('script'); 3 s.setAttribute( 4 'src', 5 'https://lib.sinaapp.com/js/jquery/2.0.3/jquery-2.0.3.min.js' 6 ); 7 s.onload = function() { 8 setInterval(function() { 9 if (!$('a[action-type="feed_list_delete