质因数分解

[复制链接]
发表于 2023-12-30 14:05:30 | 显示全部楼层 |阅读模式
【问题描述】 已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。 【输入】 输入文件名为 prime.in。 输入只有一行,包含一个正整数 n 【输出】 输出文件名为 prime.out。 输出只有一行,包含一个正整数 p,即较大的那个质数。 【输入输出样例】 prime.in prime.out 21 7 【数据范围】 对于 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]={0}; //用于筛选法求素数,有题目数据范围可知,涉及到的最大素数一定小于44722 int b[10000]={0}; //用于存储素数,b用于存储第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==-1)  {  for (j=i+i;j<50000;j+=i)  {  a[j]=0;  }  }  }  for (i=2;i<50000;i++)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表