内存限制:128 MB时间限制:1.000 S
评测方式:文本比较命题人:admin
提交:44解决:21
题目描述
任何一个大于 1 的正整数都至少有两个因数,即 1 和它自己。现在给你两个正整数 n,m,请输出 n~m 中因数最少的数及因数个数,如果有因数最少的数有多个,则输出因数最少的数的个数和它们的因数个数。
输入
若干行,每行两个正整数,n,m。
输出
行数与输入相同,每行两个正整数,用一个空格隔开,意义如题目描述。
样例输入
6 10
74 78
样例输出
7 2
2 4
提示
【样例说明】
6 至 10,因数最少的数是 7,因数有 2 个;74 至 78,因数最少的数是 74 和 77,因数有 4 个。
【数据说明】
遂于100%数据,1=<n<m<=1000。
#include<bits/stdc++.h>
using namespace std;
int geshu(int x)
{
int temp2=0;
for(int j=1;j<=x;j++)
{
if(x%j==0) temp2++;
}
return temp2;
}
int main()
{
int n,m,temp,temp3=1001,temp4=1;
while(cin>>n>>m)
{
for(int i=n;i<=m;i++)
{
temp=geshu(i);
if(temp<temp3)
{
temp3=temp;
}
}
temp4=0;
int temp5;
for(int i=n;i<=m;i++)
{
temp=geshu(i);
if(temp==temp3)
{
temp4++;
temp5=i;
}
}
if(temp4>1) cout<<temp4<<" "<<temp3<<endl;
else cout<<temp5<<" "<<temp3<<endl;
temp=0;
temp3=1001;
temp4=1;
temp5=0;
}
}