解题思路:
注意事项:
参考代码:
#include<stdio.h>
int zhishu(int n);
int main()
{
int n,m,i,j,k,l;
scanf("%d%d",&n,&m);
for(i=n;i<=m;i++)
{
if(zhishu(i))
printf("%d",i);
else
{
l=i;
k=0;
for(j=2;j<i;j++)
{
if(l%j==0&&zhishu(j))
{
l/=j;
k=j>k?j:k;
if(zhishu(l))
{
printf("%d",l>k?l:k);
break;
}
else
j=1;
}
}
}
if(i<m)
printf(",");
}
return 0;
}
int zhishu(int n)
{
int i,k=1;
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
k=0;
break;
}
}
if(n==1)
k=0;
return k;
}
0.0分
1 人评分
#include <stdio.h> #include <math.h> int as(int c) { for (int i = 1; i <= c; i++) { if (c % i == 0) { if (ae(c / i)) return (c / i); } } } int ae(int a) { if (a == 1) return 0; else { for (int i = 2; i <=sqrt(a); i++) { if (a % i == 0) return 0; } return 1; } } int main() { int m, n; scanf("%d %d", &m, &n); for (int i = m; i <= n; i++) { if (as(i)) { printf("%d", as(i)); if (i < n) printf(","); } } return 0; }