ccf 全国信息学奥林匹克联赛(noip2012) 复赛。
普及组。1.题目概况。
二.提交源程序文件名。
三.编译命令(不包含任何优化开关)
四.运行内存限制。
注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、c/c++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。
3、全国统一评测时采用的机器配置为:cpu intel core2 quad q8200 2.33ghz,内存 2g,上述时限以此配置为准。
4、特别提醒:评测在 noi linux 下进行。
问题描述】1.质因数分解。
已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。
输入】输入文件名为 输入只有一行,包含一个正整数 n。
输出】输出文件名为 输出只有一行,包含一个正整数 p,即较大的那个质数。
输入输出样例】
数据范围】对于 60%的数据,6 ≤ n ≤ 1000。 对于 100%的数据,6 ≤ n ≤ 2*109。
解题思路] 1.根据数据范围,可以判断数据范围为长整型(long=4 bytes)
补充数据类型:
整型 char 1byte
int 4bytes
short 2bytes
long 4bytes long long 8bytes
程序:#include <>
#include <>
#include <>
int a[44722]=;用于筛选法求素数,有题目数据范围可知,涉及到的最大素数一定小于44722 int b[10000]=;用于存储素数,b[i]用于存储第i+1个素数。
int count=0;
void calculateprime(void) /筛选法求素数,主要考虑到时间效率,所以用此法求素数。
int i,j;
memset(a,-1,sizeof(a));
memset(b,0,sizeof(b));
a[0]=a[1]=0;
for (i=2;i<50000;i++)
if (a[i]==1)
for (j=i+i;j<50000;j+=i)
a[j]=0;
for (i=2;i<50000;i++)
if (a[i]==1)
b[count++]i;
int main(void)
int i,n,squre,temp; file *inputfp; file *outputfp;
calculateprime();
inputfp=fopen(""r");outputfp=fopen(""w");
while (fscanf(inputfp,"%d",&n)!=eof)
printf("%d",n); squre=(int)sqrt(n);
for (i=0;i<=squre&&i{
if (n%b[i]==0) /核心:两个素数的积一定为合适,且只有3个因子。
temp=n/b[i]; break;
fprintf(outputfp,"%d",temp);
fclose(inputfp); fclose(outputfp);
return 0;
NOIP2019普及组模拟试题
说明 1 文件名 程序名和输入输出文件名 必使用小写。2 程序存放 先建汉字姓名 就是一般的考试号 文件夹,然后在这个文件夹内分别建程序名文件夹,把相应编好的的程序文件放入其中,打包汉字姓名文件夹上交邮箱评测。1 骰子 dice pas c cpp 题目描述 让我们一起来看下 一个放在桌面上的骰子,...
NOIP2019复赛模拟练习卷 一
1.序列 问题描述 有一个整数序列,它的每个数各不相同,我们不知道它的长度 即序列中的整数个数 是多少,但我们知道,在某些区间中至少有多少个整数,用区间 li,ri,ci 来描述,表示这个整数序列中至少有ci个数来自区间 li,ri 给定若干个这样的区间,问这个整数序列的长度最少能为多少?输入 第1...
NOIP2019模拟试题
一 防护伞 prevent 题目描述 据说2012的灾难和太阳黑子的爆发有关。于是地球防卫小队决定制造一个特殊防护伞,挡住太阳黑子爆发的区域,减少其对地球的影响。由于太阳相对于地球来说实在是太大了,我们可以把太阳表面看作一个平面,中心定为 0,0 根据科学家的情报,在2012年时,太阳表面上产生n个...