博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
7834:分成互质组
阅读量:6327 次
发布时间:2019-06-22

本文共 1172 字,大约阅读时间需要 3 分钟。

7834:分成互质组

http://noi.openjudge.cn/math/7834/
总时间限制: 1000ms 内存限制: 65536kB
描述
给定n个正整数,将它们分组,使得每组中任意两个数互质。至少要分成多少个组?

输入

第一行是一个正整数n。1 <= n <= 10。
第二行是n个不大于10000的正整数。
输出
一个正整数,即最少需要的组数。
样例输入
6
14 20 33 117 143 175
样例输出
3
来源
2008年第十三届“华罗庚金杯”少年数学邀请赛 决赛第5题

1 #include 
2 3 int n,a[15]; 4 int f[15];//f[i]==x表示a[i]分到第x组 5 int total;//记录不同的方案数目 6 7 void fun(int i);//判断第i个数分到哪一个组 8 int gcd(int a,int b) 9 { return a%b==0?b:gcd(b,a%b); }10 int main(int argc, char *argv[])11 {12 int i;13 scanf("%d",&n);14 for(i=0;i
=0;j--)35 {36 if(ff[j]==0)//表示a[j] 所在分组未曾检验过,那就要检验该分组 37 {38 flag=1;39 for(k=j;k>=0;k--)//扫描寻找a[j]所在分组的所有元素 40 {41 if(f[k]==f[j])//若a[k]和a[j]同一个分组 42 {43 ff[k]=1;44 if(gcd(a[k],t)!=1) flag=0;//a[k]和a[i]不互质 45 }46 }47 if(flag==1) { f[i]=f[j]; break; }//a[i]和a[j]所在组的所有元素都互质,可以加入a[j]所在组 48 }49 }50 if(f[i]==0) f[i]=++total;//假如扫描先前所有组,都不能够把a[i]加进去,那a[i]自己形成一个新的组 51 if(i

 

转载地址:http://oqwoa.baihongyu.com/

你可能感兴趣的文章
configure: error: Cannot find ldap.h
查看>>
Linux启动分析(2)— bootsect.S、setup.S、head.S分析
查看>>
自学java时的笔记(一)
查看>>
Qt之文本编辑器(二)
查看>>
python编译时检查语法错误
查看>>
考题纠错2
查看>>
SQL——索引
查看>>
Python新手快速入门教程-基础语法
查看>>
JVM性能调优入门
查看>>
关于raid的基本原理、软raid的实现演示
查看>>
科技企业的幕后推手,人工智能究竟有何魔力
查看>>
详解Oracle临时表的几种用法及意义
查看>>
HTML(七)------ 表格
查看>>
如何成为一个设计师和程序员混合型人才
查看>>
unable to load selinux policy. machine is in enforcing
查看>>
2015年10月23日作业
查看>>
MySQL5.7 加强了root用户登录安全性
查看>>
CentOS 6.3_Nagios安装配置与登录
查看>>
加强型的记录集权限(数据集权限、约束表达式设置功能)实现方法界面参考...
查看>>
Linux 内存机制
查看>>