Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

CPPPRI02 - PRIME 2

Cho số nguyên dương N. Hãy đưa ra ước số nguyên tố lớn nhất của N.

Input

Dòng đầu tiên đưa vào số lượng bộ test T.

Những dòng kế tiếp đưa vào T bộ test. Mỗi bộ test là một số nguyên dương N được ghi trên một dòng.

T, N thỏa mãn ràng buộc: 1≤T≤100; 2≤N≤1010 .

Output

Đưa ra kết quả mỗi test theo từng dòng.

Example

Input Output
2
315
31
7
31

Được gửi lên bởi:adm
Ngày:2019-10-19
Thời gian chạy:1s
Giới hạn mã nguồn:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Ngôn ngữ cho phép:C C++ 4.3.2 CPP CPP14

hide comments
2020-10-06 16:54:49
#include <iostream>
#include <cmath>
using namespace std;
typedef unsigned long long int ull;

ull function(ull n)
{
ull maxPrime;
while(n%2==0)
{ maxPrime=2;
n/=2;
}
for(ull i=3;i<=sqrt(n);i+=2)
{ while(n%i==0)
n/=i;
maxPrime=i;
}
if(n>1) maxPrime=n;
return maxPrime;
}

int main()
{
short t;
ull n;
cin>>t;
while(t--)
{ cin>>n;
cout<<function(n)<<endl;
}
return 0;
}
2019-11-14 15:35:06
mn cho mk hỏi mk chạy ở dev C++ nó ra đúng mà ở đây nó báo sai, mn giúp mk vs
#include<iostream>
#include<cmath>
using namespace std;
int checkPrime(long long n){
if(n<2) return 0;
else{
for(int i=2;i<=sqrt(n);i++){
if(n%i==0) return 0;
}
return 1;
}
}
long long max_uocsnt(long long n){
if(checkPrime(n)==1) return n;
int a;
for(int i=2;i<=sqrt(n);i++){
if((n%i==0)&&(checkPrime(i)==1)) a=i;
}
return a;
}
int main(){
int t;
cin>>t;
while(t--){
long long n;
cin>>n;
cout<<max_uocsnt(n);
}
}
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.