nyoj-517 求1-n的最小公倍数

清明节放假去玩了,回来后做的第一个题。表示很没有手感。明天上午蓝桥杯比赛、、、、怎么办呢 、、、
题意:
求1-n所有数的最小公倍数。n的范围是【1-100】
分析:
仔细观察会发现,【1-n】的最小公倍数,是【1-n-1】的最小公倍数乘以n的所有素因子中没有被【1-n-1】包含的素因子。

例如:【1-7】的最小公倍数是2*3*2*5*7,8=2*2*2,(8中2出现3次,【1-7】的素因子中只出现2次)那么【1-8】就是2*3*2*5*7*2

代码:

#include<iostream>
#include <math.h>
#include <stdio.h>
#include <string.h>
		using namespace std;
	int sum[100];//记录最小公倍数的所有素因子
	int num[101];//记录1-100的素数表
	char N[101][50];//记录最小公倍数
	int main()
	{
		int n;
		int i,j;
		memset(sum,0,sizeof(sum));
		memset(num,0,sizeof(num));
		memset(N,'\0',sizeof(N));
		for(i=2;i<11;i++)//打印素数表
		{
			if(num[i]==0)
				for(j=2*i;j<101;j+=i)
				{
					if(j%i==0)
						num[j]=1;
				}
		}
		N[1][0]='1';
		for(i=2;i<101;i++)//打印每个数的最小公倍数
		{
			int W=1;int w=i
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值