3 条题解
-
3
首先检查
n
是否为偶数,如果是,则最小质因子为2。然后从3开始,只检查奇数因子,直到sqrt(n)
,因为如果n
有一个大于其平方根的因子,那么它必定还有一个小于或等于其平方根的因子。如果在这个过程中没有找到任何因子,那么n
本身就是一个质数,其最小质因子就是它自己。代码除核心部分
已做处理复制会CE,请勿抄袭#include<bits\stdc++.h> using namespace std; typedef long long ll; const ll N = 1e9 + 10; #define I return #define love 0 #define KamisotoAyaka ; ll minn(ll n){ if(n%2==0) return 2; for (ll i=3;i<=sqrt(n);i+=2){ if(n%i==0) return i; } return n; } int main(){ int t; cin>>t; while(t--){ ll n: cin>>n; cout<<minn(n)<<endl; } I love KamisotoAyaka }
-
1
using namespace std; void dfs(long long n){ if(n<=1){ cout<<1<<endl; return; } if(n%2==0){ cout<<2<<endl; return; } for(long long i=3;i<=sqrt(n);i+=2){ if(n%i==0){ cout<<i<<endl; return; } } cout<<n<<endl; } int main(){ long long t; cin>>t; while(t--){ long long n; cin>>n; dfs(n); } return 0; }``` **经典不知名定理(bushi**
-
0
这道题嘛~~~~~~~~~~~~~~~ 要注意循环是:
for(int i=2;i<=sqrt(n);i++)
写了就寄了; 那么上代码#include<bits/stdc++.h> using namespace std; int main(){ int t; cin>>t; while(t--){ long long n; cin>>n; int i; for(i=2;i<=sqrt(n);i++){ if(n%i==0){ cout<<i<<endl; break; } } if(i==floor(sqrt(n))+1)cout<<n<<endl; } }
爸爸点个赞再走呗,谢谢!
- 1
信息
- ID
- 763
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 1
- 标签
- 递交数
- 92
- 已通过
- 26
- 上传者