这个为什么答案老是不对啊
#include<stdio.h>
int cn(int a,int b);
int main()
{
int n,a,b,s;
scanf("%d%d",&a,&b);
s=cn(a,b);
printf("%d\n",s);
return 0;
}
/* 请在这里填写答案 */
int g(int a)
{
int i,q=0;
for(i=1;i<=a;i++)
if(a%i==0)
q++;
return q;
}
int gg(int a)
{int i,q=1;
for(i=1;i<=a;i++)
if(g(i)>g(a))
q=0;
return q;
}
int cn(int a,int b)
{
int j,max=g(a),m;
for(j=a;j<=b;j++)
{if(g(j)>max&&gg(j)==1)
{max=g(j);
m=j;}}
return m;
}
#include "pch.h"
#include
//求因子个数
int yz(int t) {
int ans = 0;
for (int i = 1; i <= t; i++) {
if (t%i == 0) {
ans++;
}
}
return ans;
}
//判断是否为反素数
bool pd(int x) {
int dz = yz(x);
for (int i = 1; i <= x - 1; i++) {
if (yz(i) >= dz) {
return false;
}
}
return true;
}
int pn(int n) {
int i = 0;
for (int i = n; ; i--) {
if (pd(i) == true) {
return i;
//break;
}
}
}
//比较两数之间的因子个数
void cn(int a, int b) {
if (pn(a) == pn(b)) {
if (a < b) {
printf_s("%d", a);
}
else printf_s("%d", b);
}
else if (pn(a) > pn(b)) {
printf_s("%d", a);
}
else
printf_s("%d", b);
}
int main() {
int a,b;
scanf_s("%d%d", &a,&b);
/*for (int i = n; ; i--) {
if (pd(i) == true) {
printf_s("%d", i);
break;
}
}*/
cn(a, b);
return 0;
}