C语言,90分,求解答
查看原帖
C语言,90分,求解答
552724
printfscanf_楼主2022/3/27 09:54
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int zhi(int num);
int main()
{
	int z[26];
	char a[101];
	int len,max,min;
	int i,j;
	memset(z,0,sizeof(z));
	scanf("%s",&a);
	len=strlen(a);
	for(i=0;i<len;i++)
	{
		z[*(a+i)-97]++;
	}
	i=0;
	min=100;
	max=0;
	while(i!=26)
	{
		if(z[i]!=0)
		{
			if(z[i]>max) max=z[i];
			if(z[i]<min) min=z[i];
		}
		i++;
	}
	if(zhi(max-min))
	{
		printf("Lucky Word\n%d",max-min);
	}
	else 
	{
		printf("No Answer\n0");
	}
	return 0;
}



int zhi(int num)
{
    if(num == 1)
        return 0;
    if((num==2) || (num==3) )
        return 1; 
    if(num%6!=1 && num%6!=5)
        return 0;
 
    int tmp=sqrt(num);
 
    for(int i=5 ; i<=tmp ; i+=6 ) 
    {
        if(num%i==0 || num%(i+2)==0 ) 
        {
            return 1;
        }
    }
    return 0;
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int zhi(int num);
int main()
{
	int z[26];
	char a[101];
	int len,max,min;
	int i,j;
	memset(z,0,sizeof(z));
	scanf("%s",&a);
	len=strlen(a);
	for(i=0;i<len;i++)
	{
		z[*(a+i)-97]++;
	}
	i=0;
	min=100;
	max=0;
	while(i!=26)
	{
		if(z[i]!=0)
		{
			if(z[i]>max) max=z[i];
			if(z[i]<min) min=z[i];
		}
		i++;
	}
	if(zhi(max-min))
	{
		printf("Lucky Word\n%d",max-min);
	}
	else 
	{
		printf("No Answer\n0");
	}
	return 0;
}



int zhi(int num)
{
    if(num == 1)
        return 0;
    if((num==2) || (num==3) )
        return 1; 
    if(num%6!=1 && num%6!=5)
        return 0;
 
    int tmp=sqrt(num);
 
    for(int i=5 ; i<=tmp ; i+=6 ) 
    {
        if(num%i==0 || num%(i+2)==0 ) 
        {
            return 1;
        }
    }
    return 0;
}

我换个判断质数的方法就过了 请问一下是我判断质数的方法错了吗?是哪里错了?求大佬解答,感谢

2022/3/27 09:54
加载中...