这思路只能60分,4个WA
查看原帖
这思路只能60分,4个WA
621480
wzrun楼主2021/12/18 20:59

//想的是储存质数,再除以最小的因素。为什么测试点为1999520027的输出为1。。本来是99991。。求助

#include<stdio.h>
#include<math.h>
int main()
{
	unsigned long long int n,a[100001]={0},i,j,num=0;
	
	scanf("%lld",&n);

	
	for(i=2;i<n;i++){
		int isprime=1;
		for(j=2;j<=sqrt(i);j++){
			if(i%j==0){
				isprime=0;
				break;
			}	
		}
		if(isprime){
			a[num++]=i;//储存比n小的质数 
		}	
	}
	for(i=0;i<num;i++){
		if(n%a[i]==0){
			printf("%d",n/a[i]);
			return 0;
		} 
	} 

}

2021/12/18 20:59
加载中...