21:最大质因子序列

21:最大质因子序列

总时间限制: 
1000ms
 
内存限制: 
65536kB
描述

任意输入两个正整数m, n (1 < m < n <= 5000),依次输出m到n之间每个数的最大质因子(包括m和n;如果某个数本身是质数,则输出这个数自身)。

输入
一行,包含两个正整数m和n,其间以单个空格间隔。
输出
一行,每个整数的最大质因子,以逗号间隔。
样例输入
5 10
样例输出
5,3,7,2,3,5
来源
元培-From Whf
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 using namespace std;
 5 int vis[10001];
 6 int main()
 7 {
 8     int m,n;
 9     cin>>m>>n;
10     for(int i=2;i<=sqrt(n+0.5);i++)
11     {
12         if(vis[i]==0)
13         {
14             for(int j=i*i;j<=n;j=j+i)
15             {
16                 vis[j]=1;
17             }
18         }
19     }
20     int flag=0;
21     for(int i=m;i<=n;i++)
22     {
23         if(vis[i]==0&&flag==1)
24         {
25             cout<<","<<i;
26         }
27         else if(vis[i]==0&&flag==0)
28         {
29             cout<<i;
30             flag=1;
31         }
32         else
33         {
34             for(int j=i-1;j>=2;j--)
35             {
36                 if(i%j==0&&vis[j]==0)
37                 {
38                     if(flag==1)
39                     cout<<","<<j;
40                     else 
41                     {
42                         cout<<j;
43                         flag=1;
44                     }
45                     break;
46                 }
47                 
48             }
49         }
50     }
51     return 0;
52 }

 

posted @ 2017-03-13 20:24  自为风月马前卒  阅读(628)  评论(0编辑  收藏  举报

Contact with me