求助大佬,不知道为什么有四个WS,
查看原帖
求助大佬,不知道为什么有四个WS,
818552
loe2022楼主2022/10/9 21:39
#include <stdio.h>

int pan(int a) //判断是不是质数的函数   
{
	int isPrime=1; 
	int i;
	for(i=2;i<a;i++)
	{
		if(a%i==0)
		{
			isPrime=0;
		}
	}
	return isPrime; 
}
int main()
{
	int n,j,p,q,g,i=0,cnt=0,y=1;
	scanf("%d",&n);   //读入n
	int a[1000]={0};  //定义一个足够长的数组
	for(j=2;j<n;j++)
	{
		g=pan(j);
		if(g==1)   //g=1说明j是质数
		{
			a[i]=j;  //把2到n中的质数放到数组a中 
			i++;      
			cnt++;   //数组中的质数元素总数实际上是cnt-1 
		}
	}
	for(i=0;i<cnt-2;i++)  //从第一个开始到倒数第二个结束 
	{
		for(j=i+1;j<cnt-1;j++)  //拿一个数和它后面的每一个数相乘 
		{
			if(a[i]*a[j]==n){
				p=a[i];
				q=a[j];  //记录下来这两个相乘等于n的质数
				y=0;
				break;
			}
		}
		if(y==0)   //如果y=0,说明找到了,就跳出去,减少循环次数
		{
			break;
		}
	}
	if(p>q)//输出较大的那个
	{
		printf("%d",p);
	}else{
		printf("%d",q);
	}
	return 0;
} 
2022/10/9 21:39
加载中...